{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Neural_Networks_Regression_Exercises.ipynb",
      "provenance": [],
      "authorship_tag": "ABX9TyObnlwBGF14fX/MqdqBWPxt",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/ashikshafi08/Learning_Tensorflow/blob/main/Exercise%20Solutions/%F0%9F%9B%A0%20%2001_Neural_network_regression_in_Tensorflow.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5hfNzrrUOGuw"
      },
      "source": [
        "# 🛠 01_Neural_network_regression_in_Tensorflow\n",
        "\n",
        "- Create your own regression dataset (or make the one we created in \"Create data to view and fit\" bigger) and build fit a model to it.\n",
        "- Try building a neural network with 4 Dense layers and fitting it to your own regression dataset, how does it perform?\n",
        "- Try and improve the results we got on the insurance dataset, some things you might want to try include:\n",
        "    - Building a larger model (how does one with 4 dense layers go?).\n",
        "    - Increasing the number of units in each layer.\n",
        "    - Lookup the documentation of Adam and find out what the first parameter is,what happens if you increase it by 10x?\n",
        "    - What happens if you train for longer (say 300 epochs instead of 200)?\n",
        "- Import the Boston pricing dataset from TensorFlow `tf.keras.datasets` and model it."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gXHeK9WnOvc2"
      },
      "source": [
        "import tensorflow as tf \n",
        "import tensorflow_datasets as tfds "
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bNg9-obNTAKk"
      },
      "source": [
        "## 1. Create your own regression dataset (or make the one we created in \"Create data to view and fit\" bigger) and build fit a model to it.\n",
        "\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "K6m5MHO0Vw-T",
        "outputId": "f5063568-ada2-4acf-f1b5-5b230c578e9a"
      },
      "source": [
        "import numpy as np \n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.datasets import make_regression \n",
        "\n",
        "X , y  = make_regression(n_samples = 200 , \n",
        "                               n_features = 10 , \n",
        "                               n_targets = 1)\n",
        "\n",
        "X.shape , y.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((200, 10), (200,))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 2
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "id": "E5vg9r8FXYd6",
        "outputId": "5244d305-8368-4c96-877a-a0d00096701f"
      },
      "source": [
        "# Let's visualize the dataset \n",
        "\n",
        "plt.scatter(X[:, 0] , y)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.collections.PathCollection at 0x7f6a69d314d0>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3wc66wMXXcH9",
        "outputId": "db7b35ac-048a-4e51-9b95-6c8f362a7851"
      },
      "source": [
        "# Modelling our dummy data \n",
        "\n",
        "# Set the random seed \n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Create a model using the Sequential API \n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(1)\n",
        "])\n",
        "\n",
        "# Compile the model \n",
        "model.compile(loss = tf.keras.losses.mae , \n",
        "              optimizer = tf.keras.optimizers.Adam() , \n",
        "              metrics = ['mae'])\n",
        "\n",
        "# Fitting the model \n",
        "model.fit(X , y , epochs = 10)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/10\n",
            "7/7 [==============================] - 1s 2ms/step - loss: 183.8536 - mae: 183.8536\n",
            "Epoch 2/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 201.4009 - mae: 201.4009\n",
            "Epoch 3/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 184.0091 - mae: 184.0091\n",
            "Epoch 4/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 182.4611 - mae: 182.4611\n",
            "Epoch 5/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 175.1821 - mae: 175.1821\n",
            "Epoch 6/10\n",
            "7/7 [==============================] - 0s 3ms/step - loss: 189.3813 - mae: 189.3813\n",
            "Epoch 7/10\n",
            "7/7 [==============================] - 0s 3ms/step - loss: 171.6145 - mae: 171.6145\n",
            "Epoch 8/10\n",
            "7/7 [==============================] - 0s 3ms/step - loss: 184.6617 - mae: 184.6617\n",
            "Epoch 9/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 181.2377 - mae: 181.2377\n",
            "Epoch 10/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 181.5543 - mae: 181.5543\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.keras.callbacks.History at 0x7f6a66006650>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PGUPQTN0aKCK"
      },
      "source": [
        "## 2. Try building a neural network with 4 Dense layers and fitting it to your own regression dataset, how does it perform?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2UCj8mjPaWnA",
        "outputId": "451a1f5c-c650-484c-8e55-4767f2e3e561"
      },
      "source": [
        "# Building the model again with 4 Dense layers \n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Build the model \n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(10) , \n",
        "  tf.keras.layers.Dense(10),\n",
        "  tf.keras.layers.Dense(10),\n",
        "  tf.keras.layers.Dense(1)\n",
        "]) \n",
        "\n",
        "# Compile the model\n",
        "model.compile(loss = tf.keras.losses.mae , \n",
        "              optimizer = tf.keras.optimizers.Adam() , \n",
        "              metrics = ['mae'])\n",
        "\n",
        "# Fit the model \n",
        "model.fit(X , y , epochs= 10)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 183.7080 - mae: 183.7080\n",
            "Epoch 2/10\n",
            "7/7 [==============================] - 0s 4ms/step - loss: 201.3014 - mae: 201.3014\n",
            "Epoch 3/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 183.7484 - mae: 183.7484\n",
            "Epoch 4/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 182.0440 - mae: 182.0440\n",
            "Epoch 5/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 174.8146 - mae: 174.8146\n",
            "Epoch 6/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 188.7902 - mae: 188.7902\n",
            "Epoch 7/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 171.0878 - mae: 171.0878\n",
            "Epoch 8/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 184.0392 - mae: 184.0392\n",
            "Epoch 9/10\n",
            "7/7 [==============================] - 0s 2ms/step - loss: 180.4885 - mae: 180.4885\n",
            "Epoch 10/10\n",
            "7/7 [==============================] - 0s 3ms/step - loss: 180.5516 - mae: 180.5516\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.keras.callbacks.History at 0x7f6a656011d0>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Q6z4YsBJa5Dq"
      },
      "source": [
        "Hmm..Seems the model isn't improving maybe running for more epochs would do the magic. But let's split this into train and test set to help our model to generalize well. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "OjV8it_XbW0A",
        "outputId": "1509ef2e-bb36-41da-cf32-cffda3cfb372"
      },
      "source": [
        "# Splitting the data into train and test splits \n",
        "from sklearn.model_selection import train_test_split \n",
        "\n",
        "X_train , X_test , y_train , y_test = train_test_split(X , y , test_size = 0.2 )\n",
        "\n",
        "# Checking the shapes of our splitted data \n",
        "X_train.shape , y_train.shape , X_test.shape , y_test.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((160, 10), (160,), (40, 10), (40,))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "NFWAPUQccfDu",
        "outputId": "782fa20d-0d04-4f2a-b603-e95ccc544f61"
      },
      "source": [
        "# Let's build the model from scratch \n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Model 1 with one layer and fewer units \n",
        "model_1 = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(1)\n",
        "])\n",
        "\n",
        "# Compile the model \n",
        "model_1.compile(loss = tf.keras.losses.mae , \n",
        "                optimizer = tf.keras.optimizers.Adam() , \n",
        "                metrics = ['mae'])\n",
        "\n",
        "# Fit the model only our training data \n",
        "model.fit(X_train , y_train , epochs = 100)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.6407 - mae: 178.6407\n",
            "Epoch 2/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.4565 - mae: 178.4565\n",
            "Epoch 3/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.2312 - mae: 178.2312\n",
            "Epoch 4/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 177.9810 - mae: 177.9810\n",
            "Epoch 5/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 177.6878 - mae: 177.6878\n",
            "Epoch 6/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 177.3393 - mae: 177.3393\n",
            "Epoch 7/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 176.9552 - mae: 176.9552\n",
            "Epoch 8/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 176.4884 - mae: 176.4884\n",
            "Epoch 9/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 175.9301 - mae: 175.9301\n",
            "Epoch 10/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 175.3399 - mae: 175.3399\n",
            "Epoch 11/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 174.6303 - mae: 174.6303\n",
            "Epoch 12/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 173.8143 - mae: 173.8143\n",
            "Epoch 13/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 172.8401 - mae: 172.8401\n",
            "Epoch 14/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 171.7800 - mae: 171.7800\n",
            "Epoch 15/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 170.5768 - mae: 170.5768\n",
            "Epoch 16/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 169.2206 - mae: 169.2206\n",
            "Epoch 17/100\n",
            "5/5 [==============================] - 0s 6ms/step - loss: 167.6126 - mae: 167.6126\n",
            "Epoch 18/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 165.8479 - mae: 165.8479\n",
            "Epoch 19/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 163.8959 - mae: 163.8959\n",
            "Epoch 20/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 161.6380 - mae: 161.6380\n",
            "Epoch 21/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 159.1175 - mae: 159.1175\n",
            "Epoch 22/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 156.4749 - mae: 156.4749\n",
            "Epoch 23/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 153.4018 - mae: 153.4018\n",
            "Epoch 24/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 150.2005 - mae: 150.2005\n",
            "Epoch 25/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 146.4561 - mae: 146.4561\n",
            "Epoch 26/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 142.5141 - mae: 142.5141\n",
            "Epoch 27/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 138.0113 - mae: 138.0113\n",
            "Epoch 28/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 133.0951 - mae: 133.0951\n",
            "Epoch 29/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 127.9316 - mae: 127.9316\n",
            "Epoch 30/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 122.3501 - mae: 122.3501\n",
            "Epoch 31/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 116.2092 - mae: 116.2092\n",
            "Epoch 32/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 109.3901 - mae: 109.3901\n",
            "Epoch 33/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 102.1488 - mae: 102.1488\n",
            "Epoch 34/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 95.1148 - mae: 95.1148\n",
            "Epoch 35/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 86.5130 - mae: 86.5130\n",
            "Epoch 36/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 78.0483 - mae: 78.0483\n",
            "Epoch 37/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 69.9403 - mae: 69.9403\n",
            "Epoch 38/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 61.2396 - mae: 61.2396\n",
            "Epoch 39/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 52.9104 - mae: 52.9104\n",
            "Epoch 40/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 44.9298 - mae: 44.9298\n",
            "Epoch 41/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 39.1986 - mae: 39.1986\n",
            "Epoch 42/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 35.4699 - mae: 35.4699\n",
            "Epoch 43/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 31.8074 - mae: 31.8074\n",
            "Epoch 44/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 29.2556 - mae: 29.2556\n",
            "Epoch 45/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 26.6293 - mae: 26.6293\n",
            "Epoch 46/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 23.8199 - mae: 23.8199\n",
            "Epoch 47/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 21.1556 - mae: 21.1556\n",
            "Epoch 48/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 18.7679 - mae: 18.7679\n",
            "Epoch 49/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 16.4697 - mae: 16.4697\n",
            "Epoch 50/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 14.3406 - mae: 14.3406\n",
            "Epoch 51/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 12.0712 - mae: 12.0712\n",
            "Epoch 52/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 9.8222 - mae: 9.8222\n",
            "Epoch 53/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 7.7710 - mae: 7.7710\n",
            "Epoch 54/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 5.7079 - mae: 5.7079\n",
            "Epoch 55/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 3.6595 - mae: 3.6595\n",
            "Epoch 56/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 1.8215 - mae: 1.8215\n",
            "Epoch 57/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.7717 - mae: 0.7717\n",
            "Epoch 58/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 1.0818 - mae: 1.0818\n",
            "Epoch 59/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.9265 - mae: 0.9265\n",
            "Epoch 60/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3511 - mae: 0.3511\n",
            "Epoch 61/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3686 - mae: 0.3686\n",
            "Epoch 62/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 0.2253 - mae: 0.2253\n",
            "Epoch 63/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2430 - mae: 0.2430\n",
            "Epoch 64/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2463 - mae: 0.2463\n",
            "Epoch 65/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3267 - mae: 0.3267\n",
            "Epoch 66/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 0.2686 - mae: 0.2686\n",
            "Epoch 67/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2182 - mae: 0.2182\n",
            "Epoch 68/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3288 - mae: 0.3288\n",
            "Epoch 69/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2849 - mae: 0.2849\n",
            "Epoch 70/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2262 - mae: 0.2262\n",
            "Epoch 71/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.1994 - mae: 0.1994\n",
            "Epoch 72/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.1530 - mae: 0.1530\n",
            "Epoch 73/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.1896 - mae: 0.1896\n",
            "Epoch 74/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.1826 - mae: 0.1826\n",
            "Epoch 75/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2125 - mae: 0.2125\n",
            "Epoch 76/100\n",
            "5/5 [==============================] - 0s 6ms/step - loss: 0.2627 - mae: 0.2627\n",
            "Epoch 77/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 0.3129 - mae: 0.3129\n",
            "Epoch 78/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3856 - mae: 0.3856\n",
            "Epoch 79/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4603 - mae: 0.4603\n",
            "Epoch 80/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4075 - mae: 0.4075\n",
            "Epoch 81/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3123 - mae: 0.3123\n",
            "Epoch 82/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.3644 - mae: 0.3644\n",
            "Epoch 83/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2697 - mae: 0.2697\n",
            "Epoch 84/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.3354 - mae: 0.3354\n",
            "Epoch 85/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2893 - mae: 0.2893\n",
            "Epoch 86/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2398 - mae: 0.2398\n",
            "Epoch 87/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.1848 - mae: 0.1848\n",
            "Epoch 88/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.1749 - mae: 0.1749\n",
            "Epoch 89/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 0.1349 - mae: 0.1349\n",
            "Epoch 90/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 0.2037 - mae: 0.2037\n",
            "Epoch 91/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.2296 - mae: 0.2296\n",
            "Epoch 92/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2331 - mae: 0.2331\n",
            "Epoch 93/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2009 - mae: 0.2009\n",
            "Epoch 94/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.1773 - mae: 0.1773\n",
            "Epoch 95/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.1890 - mae: 0.1890\n",
            "Epoch 96/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.1692 - mae: 0.1692\n",
            "Epoch 97/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.1292 - mae: 0.1292\n",
            "Epoch 98/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.1911 - mae: 0.1911\n",
            "Epoch 99/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2594 - mae: 0.2594\n",
            "Epoch 100/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2908 - mae: 0.2908\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.keras.callbacks.History at 0x7f6a632d4d50>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zspLMyEveBUk",
        "outputId": "45f3fae4-0099-46b8-9e28-48065b3ad9d4"
      },
      "source": [
        "# Evaluating our model on the test data (unseen data)\n",
        "model_1.evaluate(X_test , y_test)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2/2 [==============================] - 0s 6ms/step - loss: 202.4472 - mae: 202.4472\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[200.08413696289062, 200.08413696289062]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "u_7xJkPwekgR",
        "outputId": "2577dc07-15bc-4db8-e0ff-fd0a72d22f2f"
      },
      "source": [
        "# Getting the predictions of our model \n",
        "y_preds_1 = model_1.predict(X_test)\n",
        "y_preds_1"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[-0.95550996],\n",
              "       [ 0.70432204],\n",
              "       [-1.285492  ],\n",
              "       [-2.180891  ],\n",
              "       [ 1.1370178 ],\n",
              "       [-1.1014683 ],\n",
              "       [-1.2271867 ],\n",
              "       [-1.4809712 ],\n",
              "       [-0.6412216 ],\n",
              "       [-0.5445875 ],\n",
              "       [ 0.28941685],\n",
              "       [-1.3851448 ],\n",
              "       [ 1.008815  ],\n",
              "       [-1.393259  ],\n",
              "       [-1.6048645 ],\n",
              "       [ 0.03306745],\n",
              "       [-0.5243251 ],\n",
              "       [ 1.904033  ],\n",
              "       [-1.5452797 ],\n",
              "       [-2.0084453 ],\n",
              "       [ 0.19344163],\n",
              "       [-1.4267942 ],\n",
              "       [ 1.0390828 ],\n",
              "       [ 0.2630057 ],\n",
              "       [ 0.8490603 ],\n",
              "       [ 1.0701791 ],\n",
              "       [-1.6850458 ],\n",
              "       [-0.46321878],\n",
              "       [-3.0962188 ],\n",
              "       [ 0.41170976],\n",
              "       [-0.52239954],\n",
              "       [-0.7228887 ],\n",
              "       [-0.6879473 ],\n",
              "       [-0.5413897 ],\n",
              "       [ 0.11972245],\n",
              "       [-1.2453417 ],\n",
              "       [ 0.1523251 ],\n",
              "       [ 2.3956163 ],\n",
              "       [-0.04025365],\n",
              "       [-1.6727933 ]], dtype=float32)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UDx6Z7OHeQBv"
      },
      "source": [
        "def plot_predictions(train_data,\n",
        "                     train_labels, \n",
        "                     test_data,\n",
        "                     test_labels, \n",
        "                     predictions):\n",
        "  \"\"\"\n",
        "  Plots training data, test data and compares predictions.\n",
        "  \"\"\"\n",
        "  plt.figure(figsize=(10, 7))\n",
        "  # Plot training data in blue\n",
        "  plt.scatter(train_data, train_labels, c=\"b\", label=\"Training data\")\n",
        "  # Plot test data in green\n",
        "  plt.scatter(test_data, test_labels, c=\"g\", label=\"Testing data\")\n",
        "  # Plot the predictions in red (predictions were made on the test data)\n",
        "  plt.scatter(test_data, predictions, c=\"r\", label=\"Predictions\")\n",
        "  # Show the legend\n",
        "  plt.legend();"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 428
        },
        "id": "xIaGJwpueifn",
        "outputId": "9e42e400-55dc-4225-98d5-96d8f9fabdea"
      },
      "source": [
        "# Plotting our predictions with our target \n",
        "plot_predictions(X_train[:,0] , y_train ,  \n",
        "                 X_test[:,0] , y_test , y_preds_1)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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zwcOHCj5+w899JAeffTRyZ83bdqku+66y/N2Tl2Qu5Bt27Zpy5Ytnj93KeR4AQCAsrS1tWnbtm2SpPXr12vevHn61Kc+VfbvP/TQQ5o3b57OPfdcSdLatWt9aWc5tm3bpv7+fl188cWBPi89XgAA1Kkg1rl8/PHH9da3vlUrVqzQhRdeqOeff16SdOutt2rx4sVaunSprrjiCg0ODmrTpk265ZZb1NHRoUceeUTr16/XF77wBUnS+eefr09/+tM688wz9cY3vlGPPPKIJGl0dFR/+qd/qsWLF+vSSy/VWWedpXxF1X/0ox/plFNO0fLly/W9731vcvtjjz2mc845R8uWLdO5556rp556SgcOHNDnPvc53X333ero6NDdd9+ddz8/0OMFAEAdmljncmLJpYl1LiV5NkvUOadrr71W9957r+bPn6+7775b3d3duuOOO/S3f/u3evbZZzVnzhy99NJLOvroo7V27dppvWRbt26d9ngHDx7UY489pi1btmjDhg164IEHdPvtt+uYY47Rrl27tGPHDnV0dBzWjldffVUf+chH9NOf/lR/8id/oj/7sz+bvO+UU07RI488olmzZumBBx7QTTfdpO9+97v667/+a/X39+vLX/6ypOzajPn28xqBFwAAdajYOpdeBV5//OMftWPHDr397W+XJB06dEive93rJElLly5VOp3We9/7Xr33ve8t6/Euu+wySdKKFSsmF8H+l3/5F33iE5+QJJ1++ulaunTpYb/35JNPatGiRTrppJMkSVdddZV6e3slZRftXrNmjZ5++mmZmcbGxvI+d7n71YqhRgAA6tDwyHBF26vhnNNpp52mbdu2adu2bRoYGNBPfvITSdIPfvADXXPNNfrlL3+pN73pTWUtmD1nzhxJUnNzs2cLbH/2s5/VypUrtWPHDm3evFmvvvpqTfvVisALAIA6FMQ6l3PmzNHevXv1b//2b5KksbEx7dy5U+Pj43ruuee0cuVKff7zn9fIyIj279+vo446Si+//HJFz3HeeefpnnvukSTt2rVLAwMDh+1zyimnaHBwUL/5zW8kSf/4j/84ed/IyIgWLFggSfrmN785uX1mWwrt5zUCLwAA6lAQ61w2NTXpO9/5jj796U/rjDPOUEdHhx599FEdOnRIV111lZYsWaJly5bpuuuu09FHH63Vq1fr+9///mRyfTk+9rGPae/evVq8eLH+6q/+SqeddppaW1un7TN37lz19vbqXe96l5YvX67jjz9+8r4bbrhBN954o5YtWzatF23lypXatWvXZHJ9of28Zs453x7cK52dnS7fDAYAABrJE088oVNPPbXs/TMDGXVv7dbwyLDaW9vVs6ondssvHTp0SGNjY5o7d65+85vf6IILLtBTTz2l2bNnh900SfnfEzN73DnXmW9/kusBAKhT9bDO5ejoqFauXKmxsTE553T77bdHJuiqBoEXAACIrKOOOipv3a64IscLAAAgIAReAAAAASHwAgAACAiBFwAAQEAIvAAAQNmam5vV0dGh008/XZdffrlGR0dL/1IBV199tb7zne9Ikj784Q9r165dBfd96KGH9Oijj07+vGnTJt11111VP3dYCLwAAEDZjjjiCG3btk07duzQ7NmztWnTpmn3V1t89Gtf+5oWL15c8P6ZgdfatWv1gQ98oKrnChOBFwAA9SqTkVIpqakp+zWT8fTh3/zmN2v37t166KGH9OY3v1nvec97tHjxYh06dEh/+Zd/qTe96U1aunSpvvrVr0rKru348Y9/XCeffLIuuOAC/e53v5t8rPPPP3+ybMSPfvQjLV++XGeccYZWrVqlwcFBbdq0Sbfccstk1fv169frC1/4giRp27ZtOvvss7V06VJdeuml+v3vfz/5mJ/+9Kd15pln6o1vfONktfydO3fqzDPPVEdHh5YuXaqnn37a0+NSDHW8AACoR5mM1NUlTQwFDg1lf5akdO1FVQ8ePKgf/vCHuuiiiyRJv/zlL7Vjxw4tWrRIvb29am1t1S9+8Qv98Y9/1Hnnnad3vOMd+tWvfqWnnnpKu3bt0gsvvKDFixfrgx/84LTH3bt3rz7ykY/o4Ycf1qJFi/Tiiy/q2GOP1dq1azVv3jx96lOfkiRt3bp18nc+8IEP6LbbbtNb3/pWfe5zn9OGDRu0cePGyXY+9thj2rJlizZs2KAHHnhAmzZt0ic+8Qml02kdOHBAhw4dqvl4lIseLwAA6lF392tB14TR0ez2Grzyyivq6OhQZ2en2tvb9aEPfUiSdOaZZ2rRokWSpJ/85Ce666671NHRobPOOkv79u3T008/rYcfflhXXnmlmpub9frXv15ve9vbDnv8n/3sZ3rLW94y+VjHHnts0faMjIzopZde0lvf+lZJ0po1a/Tw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\n",
            "text/plain": [
              "<Figure size 720x504 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "IZxeCFRafXdB"
      },
      "source": [
        "Great! Our model is trying to predict the points but it's not doing a great job with it. \n",
        "\n",
        "Let's try couple of experiments and see how it goes.\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zJdDE1kQi5Ft",
        "outputId": "14f98fbb-cd3f-4e3d-de55-78e2a8023d04"
      },
      "source": [
        "# Building a model with 2 layers and fewer units\n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Build the model \n",
        "model_2 = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(10) ,\n",
        "  tf.keras.layers.Dense(10), \n",
        "])\n",
        "\n",
        "# Compile the model \n",
        "model_2.compile(loss = tf.keras.losses.mae , \n",
        "                optimizer = tf.keras.optimizers.Adam() , \n",
        "                metrics = ['mae'])\n",
        "\n",
        "# Fit the model \n",
        "model_2.fit(X_train , y_train , epochs = 100)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 181.0060 - mae: 181.0060\n",
            "Epoch 2/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 177.9663 - mae: 177.9663\n",
            "Epoch 3/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 172.4464 - mae: 172.4464\n",
            "Epoch 4/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 186.0259 - mae: 186.0259\n",
            "Epoch 5/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 175.5156 - mae: 175.5156\n",
            "Epoch 6/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 169.7794 - mae: 169.7794\n",
            "Epoch 7/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 189.2825 - mae: 189.2825\n",
            "Epoch 8/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 185.0668 - mae: 185.0668\n",
            "Epoch 9/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 168.7978 - mae: 168.7978\n",
            "Epoch 10/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 171.6197 - mae: 171.6197\n",
            "Epoch 11/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 181.5578 - mae: 181.5578\n",
            "Epoch 12/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 183.7946 - mae: 183.7946\n",
            "Epoch 13/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 174.4434 - mae: 174.4434\n",
            "Epoch 14/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.8527 - mae: 172.8527\n",
            "Epoch 15/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.6607 - mae: 178.6607\n",
            "Epoch 16/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 185.2951 - mae: 185.2951\n",
            "Epoch 17/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 183.8944 - mae: 183.8944\n",
            "Epoch 18/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 171.7485 - mae: 171.7485\n",
            "Epoch 19/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 176.1539 - mae: 176.1539\n",
            "Epoch 20/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 181.2123 - mae: 181.2123\n",
            "Epoch 21/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.2481 - mae: 172.2481\n",
            "Epoch 22/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 185.7747 - mae: 185.7747\n",
            "Epoch 23/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 181.2145 - mae: 181.2145\n",
            "Epoch 24/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 189.3176 - mae: 189.3176\n",
            "Epoch 25/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 179.0765 - mae: 179.0765\n",
            "Epoch 26/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.7117 - mae: 178.7117\n",
            "Epoch 27/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 175.9018 - mae: 175.9018\n",
            "Epoch 28/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 174.2895 - mae: 174.2895\n",
            "Epoch 29/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 171.3740 - mae: 171.3740\n",
            "Epoch 30/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 182.0763 - mae: 182.0763\n",
            "Epoch 31/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 184.3470 - mae: 184.3470\n",
            "Epoch 32/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 170.7173 - mae: 170.7173\n",
            "Epoch 33/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 164.3518 - mae: 164.3518\n",
            "Epoch 34/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 199.5755 - mae: 199.5755\n",
            "Epoch 35/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 175.9931 - mae: 175.9931\n",
            "Epoch 36/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 167.5487 - mae: 167.5487\n",
            "Epoch 37/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 179.3332 - mae: 179.3332\n",
            "Epoch 38/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 175.7950 - mae: 175.7950\n",
            "Epoch 39/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 175.6156 - mae: 175.6156\n",
            "Epoch 40/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 168.3303 - mae: 168.3303\n",
            "Epoch 41/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 183.1921 - mae: 183.1921\n",
            "Epoch 42/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 188.2213 - mae: 188.2213\n",
            "Epoch 43/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 173.1675 - mae: 173.1675\n",
            "Epoch 44/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 169.7402 - mae: 169.7402\n",
            "Epoch 45/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 169.3185 - mae: 169.3185\n",
            "Epoch 46/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 177.5274 - mae: 177.5274\n",
            "Epoch 47/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 172.4436 - mae: 172.4436\n",
            "Epoch 48/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 184.6343 - mae: 184.6343\n",
            "Epoch 49/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 170.7702 - mae: 170.7702\n",
            "Epoch 50/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 169.5751 - mae: 169.5751\n",
            "Epoch 51/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.8930 - mae: 178.8930\n",
            "Epoch 52/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.8530 - mae: 172.8530\n",
            "Epoch 53/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 185.7298 - mae: 185.7298\n",
            "Epoch 54/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 162.1212 - mae: 162.1212\n",
            "Epoch 55/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 184.0024 - mae: 184.0024\n",
            "Epoch 56/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 161.0048 - mae: 161.0048\n",
            "Epoch 57/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.0074 - mae: 172.0074\n",
            "Epoch 58/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 185.3130 - mae: 185.3130\n",
            "Epoch 59/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 162.8128 - mae: 162.8128\n",
            "Epoch 60/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 176.0763 - mae: 176.0763\n",
            "Epoch 61/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 182.7290 - mae: 182.7290\n",
            "Epoch 62/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 168.7611 - mae: 168.7611\n",
            "Epoch 63/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 183.2842 - mae: 183.2842\n",
            "Epoch 64/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 171.6017 - mae: 171.6017\n",
            "Epoch 65/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 178.2756 - mae: 178.2756\n",
            "Epoch 66/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 179.9282 - mae: 179.9282\n",
            "Epoch 67/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 168.5638 - mae: 168.5638\n",
            "Epoch 68/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 173.5431 - mae: 173.5431\n",
            "Epoch 69/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 176.5205 - mae: 176.5205\n",
            "Epoch 70/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 183.6036 - mae: 183.6036\n",
            "Epoch 71/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 176.6504 - mae: 176.6504\n",
            "Epoch 72/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 173.0441 - mae: 173.0441\n",
            "Epoch 73/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 179.9445 - mae: 179.9445\n",
            "Epoch 74/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 185.2323 - mae: 185.2323\n",
            "Epoch 75/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.8707 - mae: 172.8707\n",
            "Epoch 76/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 176.2818 - mae: 176.2818\n",
            "Epoch 77/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 179.5554 - mae: 179.5554\n",
            "Epoch 78/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 167.6110 - mae: 167.6110\n",
            "Epoch 79/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 174.6419 - mae: 174.6419\n",
            "Epoch 80/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 173.4882 - mae: 173.4882\n",
            "Epoch 81/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 163.5609 - mae: 163.5609\n",
            "Epoch 82/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 183.5722 - mae: 183.5722\n",
            "Epoch 83/100\n",
            "5/5 [==============================] - 0s 6ms/step - loss: 168.9872 - mae: 168.9872\n",
            "Epoch 84/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 171.7778 - mae: 171.7778\n",
            "Epoch 85/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 157.5791 - mae: 157.5791\n",
            "Epoch 86/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 169.7325 - mae: 169.7325\n",
            "Epoch 87/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 167.3631 - mae: 167.3631\n",
            "Epoch 88/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 170.9465 - mae: 170.9465\n",
            "Epoch 89/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 174.9085 - mae: 174.9085\n",
            "Epoch 90/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 162.2198 - mae: 162.2198\n",
            "Epoch 91/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 169.5431 - mae: 169.5431\n",
            "Epoch 92/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 173.2516 - mae: 173.2516\n",
            "Epoch 93/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 162.5688 - mae: 162.5688\n",
            "Epoch 94/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 168.9132 - mae: 168.9132\n",
            "Epoch 95/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.8328 - mae: 172.8328\n",
            "Epoch 96/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 176.8024 - mae: 176.8024\n",
            "Epoch 97/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 174.8276 - mae: 174.8276\n",
            "Epoch 98/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 160.5073 - mae: 160.5073\n",
            "Epoch 99/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 171.1975 - mae: 171.1975\n",
            "Epoch 100/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 165.2917 - mae: 165.2917\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.keras.callbacks.History at 0x7f6a65591c90>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8w25NXRjnW2U",
        "outputId": "b9b114f4-7aab-44cf-d8a8-48ae4bec5643"
      },
      "source": [
        "# Building our model with 3 layers and with more hidden units \n",
        "\n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Creating the model \n",
        "model_3 = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(100), \n",
        "  tf.keras.layers.Dense(50), \n",
        "  tf.keras.layers.Dense(1) # Should be always one \n",
        "])\n",
        "\n",
        "# Compile the model \n",
        "model_3.compile(loss = tf.keras.losses.mae , \n",
        "                optimizer = tf.keras.optimizers.Adam() , \n",
        "                metrics = ['mae'])\n",
        "\n",
        "# Fit the model \n",
        "model_3.fit(X_train , y_train , epochs = 100)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 180.7138 - mae: 180.7138\n",
            "Epoch 2/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 177.2084 - mae: 177.2084\n",
            "Epoch 3/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 171.1185 - mae: 171.1185\n",
            "Epoch 4/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 184.0426 - mae: 184.0426\n",
            "Epoch 5/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 172.9137 - mae: 172.9137\n",
            "Epoch 6/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 166.4625 - mae: 166.4625\n",
            "Epoch 7/100\n",
            "5/5 [==============================] - 0s 5ms/step - loss: 184.7496 - mae: 184.7496\n",
            "Epoch 8/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 179.4012 - mae: 179.4012\n",
            "Epoch 9/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 162.1780 - mae: 162.1780\n",
            "Epoch 10/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 163.0190 - mae: 163.0190\n",
            "Epoch 11/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 170.9950 - mae: 170.9950\n",
            "Epoch 12/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 170.0531 - mae: 170.0531\n",
            "Epoch 13/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 158.9149 - mae: 158.9149\n",
            "Epoch 14/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 155.0936 - mae: 155.0936\n",
            "Epoch 15/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 156.3380 - mae: 156.3380\n",
            "Epoch 16/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 157.5243 - mae: 157.5243\n",
            "Epoch 17/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 151.1496 - mae: 151.1496\n",
            "Epoch 18/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 135.3545 - mae: 135.3545\n",
            "Epoch 19/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 132.9713 - mae: 132.9713\n",
            "Epoch 20/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 131.3034 - mae: 131.3034\n",
            "Epoch 21/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 117.0492 - mae: 117.0492\n",
            "Epoch 22/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 115.9046 - mae: 115.9046\n",
            "Epoch 23/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 105.5145 - mae: 105.5145\n",
            "Epoch 24/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 98.5315 - mae: 98.5315\n",
            "Epoch 25/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 83.7834 - mae: 83.7834\n",
            "Epoch 26/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 69.6810 - mae: 69.6810\n",
            "Epoch 27/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 56.2639 - mae: 56.2639\n",
            "Epoch 28/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 46.0933 - mae: 46.0933\n",
            "Epoch 29/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 33.1337 - mae: 33.1337\n",
            "Epoch 30/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 23.7542 - mae: 23.7542\n",
            "Epoch 31/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 21.8358 - mae: 21.8358\n",
            "Epoch 32/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 17.6217 - mae: 17.6217\n",
            "Epoch 33/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 12.8558 - mae: 12.8558\n",
            "Epoch 34/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 7.4195 - mae: 7.4195\n",
            "Epoch 35/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 3.9727 - mae: 3.9727\n",
            "Epoch 36/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 1.6656 - mae: 1.6656\n",
            "Epoch 37/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 2.0832 - mae: 2.0832\n",
            "Epoch 38/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 1.8391 - mae: 1.8391\n",
            "Epoch 39/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 1.0592 - mae: 1.0592\n",
            "Epoch 40/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 1.1190 - mae: 1.1190\n",
            "Epoch 41/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.9247 - mae: 0.9247\n",
            "Epoch 42/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.8027 - mae: 0.8027\n",
            "Epoch 43/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.6619 - mae: 0.6619\n",
            "Epoch 44/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.6182 - mae: 0.6182\n",
            "Epoch 45/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.6362 - mae: 0.6362\n",
            "Epoch 46/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 0.5698 - mae: 0.5698\n",
            "Epoch 47/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 0.4604 - mae: 0.4604\n",
            "Epoch 48/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3223 - mae: 0.3223\n",
            "Epoch 49/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3139 - mae: 0.3139\n",
            "Epoch 50/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3526 - mae: 0.3526\n",
            "Epoch 51/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 0.2090 - mae: 0.2090\n",
            "Epoch 52/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 0.2678 - mae: 0.2678\n",
            "Epoch 53/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 0.2717 - mae: 0.2717\n",
            "Epoch 54/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3031 - mae: 0.3031\n",
            "Epoch 55/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3449 - mae: 0.3449\n",
            "Epoch 56/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4379 - mae: 0.4379\n",
            "Epoch 57/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.4573 - mae: 0.4573\n",
            "Epoch 58/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4078 - mae: 0.4078\n",
            "Epoch 59/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3274 - mae: 0.3274\n",
            "Epoch 60/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2991 - mae: 0.2991\n",
            "Epoch 61/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3172 - mae: 0.3172\n",
            "Epoch 62/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3757 - mae: 0.3757\n",
            "Epoch 63/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2525 - mae: 0.2525\n",
            "Epoch 64/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.3302 - mae: 0.3302\n",
            "Epoch 65/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3247 - mae: 0.3247\n",
            "Epoch 66/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3465 - mae: 0.3465\n",
            "Epoch 67/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4359 - mae: 0.4359\n",
            "Epoch 68/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.5074 - mae: 0.5074\n",
            "Epoch 69/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.5519 - mae: 0.5519\n",
            "Epoch 70/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.6082 - mae: 0.6082\n",
            "Epoch 71/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.7107 - mae: 0.7107\n",
            "Epoch 72/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4610 - mae: 0.4610\n",
            "Epoch 73/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.4572 - mae: 0.4572\n",
            "Epoch 74/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.4881 - mae: 0.4881\n",
            "Epoch 75/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.5717 - mae: 0.5717\n",
            "Epoch 76/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4686 - mae: 0.4686\n",
            "Epoch 77/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3647 - mae: 0.3647\n",
            "Epoch 78/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4884 - mae: 0.4884\n",
            "Epoch 79/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.5205 - mae: 0.5205\n",
            "Epoch 80/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4061 - mae: 0.4061\n",
            "Epoch 81/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.4142 - mae: 0.4142\n",
            "Epoch 82/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3087 - mae: 0.3087\n",
            "Epoch 83/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.5017 - mae: 0.5017\n",
            "Epoch 84/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4370 - mae: 0.4370\n",
            "Epoch 85/100\n",
            "5/5 [==============================] - 0s 4ms/step - loss: 0.4835 - mae: 0.4835\n",
            "Epoch 86/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2550 - mae: 0.2550\n",
            "Epoch 87/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2181 - mae: 0.2181\n",
            "Epoch 88/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2656 - mae: 0.2656\n",
            "Epoch 89/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3204 - mae: 0.3204\n",
            "Epoch 90/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.2545 - mae: 0.2545\n",
            "Epoch 91/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3115 - mae: 0.3115\n",
            "Epoch 92/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4049 - mae: 0.4049\n",
            "Epoch 93/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3065 - mae: 0.3065\n",
            "Epoch 94/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3297 - mae: 0.3297\n",
            "Epoch 95/100\n",
            "5/5 [==============================] - 0s 2ms/step - loss: 0.3714 - mae: 0.3714\n",
            "Epoch 96/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3701 - mae: 0.3701\n",
            "Epoch 97/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4102 - mae: 0.4102\n",
            "Epoch 98/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3724 - mae: 0.3724\n",
            "Epoch 99/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.3916 - mae: 0.3916\n",
            "Epoch 100/100\n",
            "5/5 [==============================] - 0s 3ms/step - loss: 0.4589 - mae: 0.4589\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.keras.callbacks.History at 0x7f6a655f9190>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 13
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "b0tgC8UTouDu"
      },
      "source": [
        "Woooo! Look at that, but we shouldn't be excited lets evaluate on the test data. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cO2A4s6rp24i",
        "outputId": "e0259d35-102f-4ee0-ca73-bb1de5930742"
      },
      "source": [
        "model_3.evaluate(X_test , y_test)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2/2 [==============================] - 0s 7ms/step - loss: 0.6690 - mae: 0.6690\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.6690224409103394, 0.6690224409103394]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 14
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lGPKY5prp6mP"
      },
      "source": [
        "Awesome! This is what we want error should be loss. Let's plot our predictions with targets!"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "va30z1UYqbLa",
        "outputId": "d4bc2bd9-f8ba-4b51-9016-17f42728a21a"
      },
      "source": [
        "# Making predictions \n",
        "y_preds_3 = model_3.predict(X_test)\n",
        "y_preds_3.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(40, 1)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 428
        },
        "id": "JmvxoAfgq9Au",
        "outputId": "c6cd85df-f8a7-41e1-ead9-b17de05f9fb0"
      },
      "source": [
        "plot_predictions(X_train[: , 0] , y_train , \n",
        "                 X_test[: , 0] , y_test , \n",
        "                 y_preds_3)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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dH3VqlW65557fO/n8AW5s9mwYYMeeOAB3597LOR4AQCAvEydOlUbNmyQJN14442aNGmSPv3pT+d9/0ceeUSTJk3SWWedJUm6+uqrA+lnPjZs2KCuri5deOGFoT4vI14AAJSpzic71XRHk6puqlLTHU3qfLLT9+d4/PHH9Za3vEXz5s3T+eefrz/+8Y+SpLvuukuzZs3S7Nmzddlll6m7u1urVq3S7bffrubmZq1bt0433nijvvCFL0iSzjnnHH3mM5/Raaedpte//vVat26dJOngwYN6//vfr1mzZumSSy7R6aefrkxF1X/605/qxBNP1Ny5c/Xd7353qP2xxx7TmWeeqTlz5uiss87SM888o1dffVVLly7Vvffeq+bmZt17770ZtwsCI14AAJShzic71fbDNh3sPShJ2rZ3m9p+6NU/a32DP5VUnXP6xCc+ofvvv1/Tpk3TvffeqyVLlujuu+/W8uXL9fzzz2v8+PF68cUXdfjhh+vqq68eMUr20EMPjXi8vr4+PfbYY3rggQd00003ac2aNVqxYoXq6uq0ZcsWbdq0Sc3NzYf045VXXtFHP/pR/eIXv9Df//3f6x/+4R+GbjvxxBO1bt06VVdXa82aNbrhhhv0ne98RzfffLO6urr0pS99SZK3NmOm7fxG4AUAQBla8tCSoaBr0MHeg1ry0BLfAq+//e1v2rRpk972trdJkvr7+3X00UdLkmbPnq3W1la95z3v0Xve8568Hu+9732vJGnevHlDi2CvX79e1113nSTplFNO0ezZsw+539NPP62ZM2fq+OOPlyRdccUV6ujw1vPcu3evrrzySj377LMyM/X29h5y/0K2KxWnGgEAKEPb924vqL0YzjmdfPLJ2rBhgzZs2KAnn3xSP//5zyVJP/7xj3XNNdfoN7/5jd74xjfmtWD2+PHjJUmpVMq3BbY/+9nPasGCBdq0aZN++MMf6pVXXilpu1IReAEAUIZmTJlRUHsxxo8fr507d+p///d/JUm9vb3avHmzBgYGtGPHDi1YsEC33nqr9u7dq/3792vy5Mnat29fQc9x9tln67777pMkbdmyRU8++eQh25x44onq7u7W73//e0nSt771raHb9u7dq+nTp0uSvv71rw+1j+5Ltu38RuAFAEAZWnbuMtXWjFzDsLamVsvOXebbc1RVVenb3/62PvOZz+jUU09Vc3OzHn30UfX39+uKK67QG97wBs2ZM0fXXnutDj/8cL3rXe/S9773vaHk+nwsXLhQO3fu1KxZs/Qv//IvOvnkkzVlypQR20yYMEEdHR266KKLNHfuXB155JFDty1atEjXX3+95syZM2IUbcGCBdqyZctQcn227fxmzrnAHtwvLS0tLtMMBgAAKslTTz2lk046Ke/tO5/s1JKHlmj73u2aMWWGlp27zLf8rrD09/ert7dXEyZM0O9//3udd955euaZZzRu3LiouyYp82tiZo8751oybU9yPQAAZar1Da2JC7RGO3jwoBYsWKDe3l4557RixYrYBF3FIPACAACxNXny5Ix1u5KKHC8AAICQEHgBAACEhMALAAAgJAReAAAAISHwAgAAeUulUmpubtYpp5yiSy+9VAcPHhz7Tll86EMf0re//W1J0kc+8hFt2bIl67aPPPKIHn300aHrq1at0j333FP0c0eFwAsAAOTtda97nTZs2KBNmzZp3LhxWrVq1Yjbiy0++tWvflWzZs3KevvowOvqq6/WBz/4waKeK0oEXgAAlKvOTqmpSaqq8n52dvr68G9605u0detWPfLII3rTm96kd7/73Zo1a5b6+/v1z//8z3rjG9+o2bNn68tf/rIkb23Hj3/84zrhhBN03nnn6S9/+cvQY51zzjlDZSN++tOfau7cuTr11FN17rnnqru7W6tWrdLtt98+VPX+xhtv1Be+8AVJ0oYNG3TGGWdo9uzZuuSSS7Rnz56hx/zMZz6j0047Ta9//euHquVv3rxZp512mpqbmzV79mw9++yzvu6XXKjjBQBAOerslNrapMFTgdu2edclqbX0oqp9fX36yU9+ogsuuECS9Jvf/EabNm3SzJkz1dHRoSlTpujXv/61/va3v+nss8/W29/+dj3xxBN65plntGXLFv35z3/WrFmzdNVVV4143J07d+qjH/2o1q5dq5kzZ2r37t2qr6/X1VdfrUmTJunTn/60JOmhhx4aus8HP/hBffGLX9Rb3vIWLV26VDfddJPuuOOOoX4+9thjeuCBB3TTTTdpzZo1WrVqla677jq1trbq1VdfVX9/f8n7I1+MeAEAUI6WLHkt6Bp08KDXXoKXX35Zzc3Namlp0YwZM/ThD39YknTaaadp5syZkqSf//znuueee9Tc3KzTTz9du3bt0rPPPqu1a9fq8ssv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\n",
            "text/plain": [
              "<Figure size 720x504 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "r0BmGjD5uVV-"
      },
      "source": [
        "Look at that! Our model has predicted every test data correctly. You can't spot a green dot (test data) it's because our predictions (red dot) overlapped. \n",
        "\n",
        "Our model is doing a perfect job!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "oPEOC8hJumOX"
      },
      "source": [
        "## Try and improve the results we got on the insurance dataset, some things you might want to try include:\n",
        "- Building a larger model (how does one with 4 dense layers go?).\n",
        "- Increasing the number of units in each layer.\n",
        "- Lookup the documentation of Adam and find out what the first parameter is,what happens if you increase it by 10x?\n",
        "- What happens if you train for longer (say 300 epochs instead of 200)?"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GwHBe9Syuttk"
      },
      "source": [
        "### Building a larger model (how does one with 4 dense layers go?)"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "7YVoquEZu5qc",
        "outputId": "4fbd57e7-15ca-4a78-c8dc-bfef47e5695d"
      },
      "source": [
        "# Let's download the data \n",
        "import pandas as pd \n",
        "import numpy as np \n",
        "\n",
        "data = pd.read_csv('https://raw.githubusercontent.com/stedy/Machine-Learning-with-R-datasets/master/insurance.csv')\n",
        "\n",
        "data.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(1338, 7)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 54
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tdB27P_gvMsR"
      },
      "source": [
        "Our insurance data has 1338 rows and 7 columns"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 204
        },
        "id": "0lVqJhPqvQyu",
        "outputId": "2e6deec9-b83d-40a0-bfb6-d5efbd59ce8d"
      },
      "source": [
        "# Looking into the data \n",
        "data.head()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>age</th>\n",
              "      <th>sex</th>\n",
              "      <th>bmi</th>\n",
              "      <th>children</th>\n",
              "      <th>smoker</th>\n",
              "      <th>region</th>\n",
              "      <th>charges</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>19</td>\n",
              "      <td>female</td>\n",
              "      <td>27.900</td>\n",
              "      <td>0</td>\n",
              "      <td>yes</td>\n",
              "      <td>southwest</td>\n",
              "      <td>16884.92400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>18</td>\n",
              "      <td>male</td>\n",
              "      <td>33.770</td>\n",
              "      <td>1</td>\n",
              "      <td>no</td>\n",
              "      <td>southeast</td>\n",
              "      <td>1725.55230</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>28</td>\n",
              "      <td>male</td>\n",
              "      <td>33.000</td>\n",
              "      <td>3</td>\n",
              "      <td>no</td>\n",
              "      <td>southeast</td>\n",
              "      <td>4449.46200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>33</td>\n",
              "      <td>male</td>\n",
              "      <td>22.705</td>\n",
              "      <td>0</td>\n",
              "      <td>no</td>\n",
              "      <td>northwest</td>\n",
              "      <td>21984.47061</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>32</td>\n",
              "      <td>male</td>\n",
              "      <td>28.880</td>\n",
              "      <td>0</td>\n",
              "      <td>no</td>\n",
              "      <td>northwest</td>\n",
              "      <td>3866.85520</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   age     sex     bmi  children smoker     region      charges\n",
              "0   19  female  27.900         0    yes  southwest  16884.92400\n",
              "1   18    male  33.770         1     no  southeast   1725.55230\n",
              "2   28    male  33.000         3     no  southeast   4449.46200\n",
              "3   33    male  22.705         0     no  northwest  21984.47061\n",
              "4   32    male  28.880         0     no  northwest   3866.85520"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 55
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9fTkoq4uvTlT"
      },
      "source": [
        "We have some categorical variables, let's convert those columns into numerial used pandas."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 204
        },
        "id": "QHkov4kfw-vI",
        "outputId": "abd350ee-4ffd-4250-e034-1b8447bbad08"
      },
      "source": [
        "# Turn categorical into numbers \n",
        "data_one_hot = pd.get_dummies(data)\n",
        "data_one_hot.head()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>age</th>\n",
              "      <th>bmi</th>\n",
              "      <th>children</th>\n",
              "      <th>charges</th>\n",
              "      <th>sex_female</th>\n",
              "      <th>sex_male</th>\n",
              "      <th>smoker_no</th>\n",
              "      <th>smoker_yes</th>\n",
              "      <th>region_northeast</th>\n",
              "      <th>region_northwest</th>\n",
              "      <th>region_southeast</th>\n",
              "      <th>region_southwest</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>19</td>\n",
              "      <td>27.900</td>\n",
              "      <td>0</td>\n",
              "      <td>16884.92400</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>18</td>\n",
              "      <td>33.770</td>\n",
              "      <td>1</td>\n",
              "      <td>1725.55230</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>28</td>\n",
              "      <td>33.000</td>\n",
              "      <td>3</td>\n",
              "      <td>4449.46200</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>33</td>\n",
              "      <td>22.705</td>\n",
              "      <td>0</td>\n",
              "      <td>21984.47061</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>32</td>\n",
              "      <td>28.880</td>\n",
              "      <td>0</td>\n",
              "      <td>3866.85520</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   age     bmi  children  ...  region_northwest  region_southeast  region_southwest\n",
              "0   19  27.900         0  ...                 0                 0                 1\n",
              "1   18  33.770         1  ...                 0                 1                 0\n",
              "2   28  33.000         3  ...                 0                 1                 0\n",
              "3   33  22.705         0  ...                 1                 0                 0\n",
              "4   32  28.880         0  ...                 1                 0                 0\n",
              "\n",
              "[5 rows x 12 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 56
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gyk08SU3xHK6",
        "outputId": "447191b4-e64f-4c13-8c02-7a4faed733b4"
      },
      "source": [
        "# Splitting into X and Y \n",
        "\n",
        "X = data_one_hot.drop('charges' , axis = 1)\n",
        "y = data_one_hot['charges']\n",
        "\n",
        "X.shape , y.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((1338, 11), (1338,))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 57
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "f3K1nVKt38zl",
        "outputId": "ef8c16d6-f920-417c-d6a9-acb1a0acef04"
      },
      "source": [
        "# Creating train and test split \n",
        "X_train , X_test , y_train , y_test = train_test_split(X , y , test_size = 0.2 , random_state = 42)\n",
        "\n",
        "# Checking the shapes\n",
        "X_train.shape , y_train.shape , X_test.shape , y_test.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((1070, 11), (1070,), (268, 11), (268,))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 58
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gC5DYqlw4N3p",
        "outputId": "df577c37-4128-42c2-ba73-bd405515a342"
      },
      "source": [
        "# Building the model with 4 dense layers and more units\n",
        "\n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Create the model \n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(300) , \n",
        "  tf.keras.layers.Dense(200), \n",
        "  tf.keras.layers.Dense(100),\n",
        "  tf.keras.layers.Dense(50) ,\n",
        "  tf.keras.layers.Dense(1)\n",
        "])\n",
        "\n",
        "\n",
        "# Compiling the model \n",
        "model.compile(loss = tf.keras.losses.mae , \n",
        "              optimizer = tf.keras.optimizers.Adam() , \n",
        "              metrics = ['mae'])\n",
        "\n",
        "# Fit the model \n",
        "model.fit(X_train , y_train , epochs = 100)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/100\n",
            "34/34 [==============================] - 1s 3ms/step - loss: 12240.1551 - mae: 12240.1551\n",
            "Epoch 2/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 7313.2228 - mae: 7313.2228\n",
            "Epoch 3/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6693.0326 - mae: 6693.0326\n",
            "Epoch 4/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 7058.5107 - mae: 7058.5107\n",
            "Epoch 5/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6780.9089 - mae: 6780.9089\n",
            "Epoch 6/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6644.6328 - mae: 6644.6328\n",
            "Epoch 7/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6453.0210 - mae: 6453.0210\n",
            "Epoch 8/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6689.9115 - mae: 6689.9115\n",
            "Epoch 9/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6504.3999 - mae: 6504.3999\n",
            "Epoch 10/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6444.9807 - mae: 6444.9807\n",
            "Epoch 11/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6489.4019 - mae: 6489.4019\n",
            "Epoch 12/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 5769.9127 - mae: 5769.9127\n",
            "Epoch 13/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 5395.3140 - mae: 5395.3140\n",
            "Epoch 14/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4163.0676 - mae: 4163.0676\n",
            "Epoch 15/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4335.7387 - mae: 4335.7387\n",
            "Epoch 16/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4241.0693 - mae: 4241.0693\n",
            "Epoch 17/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3656.0548 - mae: 3656.0548\n",
            "Epoch 18/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3677.4055 - mae: 3677.4055\n",
            "Epoch 19/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3778.4239 - mae: 3778.4239\n",
            "Epoch 20/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3819.3813 - mae: 3819.3813\n",
            "Epoch 21/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3686.0372 - mae: 3686.0372\n",
            "Epoch 22/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3577.7902 - mae: 3577.7902\n",
            "Epoch 23/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3882.0528 - mae: 3882.0528\n",
            "Epoch 24/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3800.7287 - mae: 3800.7287\n",
            "Epoch 25/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4078.1711 - mae: 4078.1711\n",
            "Epoch 26/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3649.4644 - mae: 3649.4644\n",
            "Epoch 27/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3943.3166 - mae: 3943.3166\n",
            "Epoch 28/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4079.2818 - mae: 4079.2818\n",
            "Epoch 29/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3578.1527 - mae: 3578.1527\n",
            "Epoch 30/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3851.8050 - mae: 3851.8050\n",
            "Epoch 31/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3957.2093 - mae: 3957.2093\n",
            "Epoch 32/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3719.9103 - mae: 3719.9103\n",
            "Epoch 33/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3834.6484 - mae: 3834.6484\n",
            "Epoch 34/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3630.3743 - mae: 3630.3743\n",
            "Epoch 35/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3679.9306 - mae: 3679.9306\n",
            "Epoch 36/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3619.5057 - mae: 3619.5057\n",
            "Epoch 37/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3735.9216 - mae: 3735.9216\n",
            "Epoch 38/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3610.6752 - mae: 3610.6752\n",
            "Epoch 39/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3695.9369 - mae: 3695.9369\n",
            "Epoch 40/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3710.0470 - mae: 3710.0470\n",
            "Epoch 41/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3354.4031 - mae: 3354.4031\n",
            "Epoch 42/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3574.1120 - mae: 3574.1120\n",
            "Epoch 43/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3660.2079 - mae: 3660.2079\n",
            "Epoch 44/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3378.7777 - mae: 3378.7777\n",
            "Epoch 45/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3564.4655 - mae: 3564.4655\n",
            "Epoch 46/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3341.2382 - mae: 3341.2382\n",
            "Epoch 47/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3647.4187 - mae: 3647.4187\n",
            "Epoch 48/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3598.2588 - mae: 3598.2588\n",
            "Epoch 49/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3842.2437 - mae: 3842.2437\n",
            "Epoch 50/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3471.2247 - mae: 3471.2247\n",
            "Epoch 51/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3387.3564 - mae: 3387.3564\n",
            "Epoch 52/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3390.5536 - mae: 3390.5536\n",
            "Epoch 53/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3546.8600 - mae: 3546.8600\n",
            "Epoch 54/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3509.3370 - mae: 3509.3370\n",
            "Epoch 55/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3591.5004 - mae: 3591.5004\n",
            "Epoch 56/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3711.7281 - mae: 3711.7281\n",
            "Epoch 57/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3696.1219 - mae: 3696.1219\n",
            "Epoch 58/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3571.6581 - mae: 3571.6581\n",
            "Epoch 59/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3163.1332 - mae: 3163.1332\n",
            "Epoch 60/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3643.2477 - mae: 3643.2477\n",
            "Epoch 61/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3539.2116 - mae: 3539.2116\n",
            "Epoch 62/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3667.8531 - mae: 3667.8531\n",
            "Epoch 63/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3523.4350 - mae: 3523.4350\n",
            "Epoch 64/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3526.1941 - mae: 3526.1941\n",
            "Epoch 65/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3516.4158 - mae: 3516.4158\n",
            "Epoch 66/100\n",
            "34/34 [==============================] - 0s 4ms/step - loss: 3499.2197 - mae: 3499.2197\n",
            "Epoch 67/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3674.5685 - mae: 3674.5685\n",
            "Epoch 68/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3673.7035 - mae: 3673.7035\n",
            "Epoch 69/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3566.4105 - mae: 3566.4105\n",
            "Epoch 70/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3427.1236 - mae: 3427.1236\n",
            "Epoch 71/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3574.0456 - mae: 3574.0456\n",
            "Epoch 72/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3591.9199 - mae: 3591.9199\n",
            "Epoch 73/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3778.4805 - mae: 3778.4805\n",
            "Epoch 74/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3607.4371 - mae: 3607.4371\n",
            "Epoch 75/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3592.1167 - mae: 3592.1167\n",
            "Epoch 76/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3368.0693 - mae: 3368.0693\n",
            "Epoch 77/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3671.5381 - mae: 3671.5381\n",
            "Epoch 78/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3783.8197 - mae: 3783.8197\n",
            "Epoch 79/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3661.9954 - mae: 3661.9954\n",
            "Epoch 80/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3376.9901 - mae: 3376.9901\n",
            "Epoch 81/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3357.2832 - mae: 3357.2832\n",
            "Epoch 82/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3898.0462 - mae: 3898.0462\n",
            "Epoch 83/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3607.3737 - mae: 3607.3737\n",
            "Epoch 84/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3200.7299 - mae: 3200.7299\n",
            "Epoch 85/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3258.9658 - mae: 3258.9658\n",
            "Epoch 86/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3551.8167 - mae: 3551.8167\n",
            "Epoch 87/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3484.6519 - mae: 3484.6519\n",
            "Epoch 88/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3555.1480 - mae: 3555.1480\n",
            "Epoch 89/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3370.4131 - mae: 3370.4131\n",
            "Epoch 90/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3589.5180 - mae: 3589.5180\n",
            "Epoch 91/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3564.6704 - mae: 3564.6704\n",
            "Epoch 92/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3780.2822 - mae: 3780.2822\n",
            "Epoch 93/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3769.3290 - mae: 3769.3290\n",
            "Epoch 94/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3536.7657 - mae: 3536.7657\n",
            "Epoch 95/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3457.9324 - mae: 3457.9324\n",
            "Epoch 96/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3359.9601 - mae: 3359.9601\n",
            "Epoch 97/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3374.9523 - mae: 3374.9523\n",
            "Epoch 98/100\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3623.9119 - mae: 3623.9119\n",
            "Epoch 99/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3280.5763 - mae: 3280.5763\n",
            "Epoch 100/100\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3286.9214 - mae: 3286.9214\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.keras.callbacks.History at 0x7f6a6462cf90>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 22
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "s1gn2Ydx7B94"
      },
      "source": [
        "### Lookup the documentation of Adam and find out what the first parameter is,what happens if you increase it by 10x?\n",
        "\n",
        "And running for 400 epochs"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TaWXcxuXC-qU",
        "outputId": "695e1839-c6f8-43af-b72c-a7fb77748332"
      },
      "source": [
        "# Let's tweak the Adam Optimizer's learning rate \n",
        "\n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Create the model \n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(100) , \n",
        "  tf.keras.layers.Dense(100), \n",
        "  tf.keras.layers.Dense(100),\n",
        "  tf.keras.layers.Dense(100),\n",
        "  tf.keras.layers.Dense(1)\n",
        "])\n",
        "\n",
        "\n",
        "# Compiling the model \n",
        "model.compile(loss = tf.keras.losses.mae , \n",
        "              optimizer = tf.keras.optimizers.Adam(learning_rate= 0.001*10 ) , \n",
        "              metrics = ['mae'])\n",
        "\n",
        "# Fit the model \n",
        "history = model.fit(X_train , y_train , epochs = 400)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/400\n",
            "34/34 [==============================] - 1s 2ms/step - loss: 10052.8375 - mae: 10052.8375\n",
            "Epoch 2/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 6790.7139 - mae: 6790.7139\n",
            "Epoch 3/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 5798.6140 - mae: 5798.6140\n",
            "Epoch 4/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 5239.7617 - mae: 5239.7617\n",
            "Epoch 5/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4245.1057 - mae: 4245.1057\n",
            "Epoch 6/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3907.5740 - mae: 3907.5740\n",
            "Epoch 7/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3859.1372 - mae: 3859.1372\n",
            "Epoch 8/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4074.5092 - mae: 4074.5092\n",
            "Epoch 9/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4408.9693 - mae: 4408.9693\n",
            "Epoch 10/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3919.0808 - mae: 3919.0808\n",
            "Epoch 11/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4213.9008 - mae: 4213.9008\n",
            "Epoch 12/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4034.2406 - mae: 4034.2406\n",
            "Epoch 13/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4087.1931 - mae: 4087.1931\n",
            "Epoch 14/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3857.7639 - mae: 3857.7639\n",
            "Epoch 15/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4570.2497 - mae: 4570.2497\n",
            "Epoch 16/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4403.3432 - mae: 4403.3432\n",
            "Epoch 17/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3911.5839 - mae: 3911.5839\n",
            "Epoch 18/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3804.9236 - mae: 3804.9236\n",
            "Epoch 19/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3925.5545 - mae: 3925.5545\n",
            "Epoch 20/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3686.2879 - mae: 3686.2879\n",
            "Epoch 21/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3784.4330 - mae: 3784.4330\n",
            "Epoch 22/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3512.5980 - mae: 3512.5980\n",
            "Epoch 23/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3918.5613 - mae: 3918.5613\n",
            "Epoch 24/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3686.0636 - mae: 3686.0636\n",
            "Epoch 25/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4176.4481 - mae: 4176.4481\n",
            "Epoch 26/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3677.4143 - mae: 3677.4143\n",
            "Epoch 27/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4426.3385 - mae: 4426.3385\n",
            "Epoch 28/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4125.6474 - mae: 4125.6474\n",
            "Epoch 29/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3869.4268 - mae: 3869.4268\n",
            "Epoch 30/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3927.1105 - mae: 3927.1105\n",
            "Epoch 31/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3860.5938 - mae: 3860.5938\n",
            "Epoch 32/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3774.0089 - mae: 3774.0089\n",
            "Epoch 33/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3818.2683 - mae: 3818.2683\n",
            "Epoch 34/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3693.7796 - mae: 3693.7796\n",
            "Epoch 35/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3761.8953 - mae: 3761.8953\n",
            "Epoch 36/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3701.6100 - mae: 3701.6100\n",
            "Epoch 37/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3844.9657 - mae: 3844.9657\n",
            "Epoch 38/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3625.8699 - mae: 3625.8699\n",
            "Epoch 39/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3766.0986 - mae: 3766.0986\n",
            "Epoch 40/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3807.4720 - mae: 3807.4720\n",
            "Epoch 41/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3807.2437 - mae: 3807.2437\n",
            "Epoch 42/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4035.7715 - mae: 4035.7715\n",
            "Epoch 43/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3818.1909 - mae: 3818.1909\n",
            "Epoch 44/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3698.6991 - mae: 3698.6991\n",
            "Epoch 45/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3660.0027 - mae: 3660.0027\n",
            "Epoch 46/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3467.1590 - mae: 3467.1590\n",
            "Epoch 47/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3890.2953 - mae: 3890.2953\n",
            "Epoch 48/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3872.5623 - mae: 3872.5623\n",
            "Epoch 49/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4024.9101 - mae: 4024.9101\n",
            "Epoch 50/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4180.3863 - mae: 4180.3863\n",
            "Epoch 51/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3606.3819 - mae: 3606.3819\n",
            "Epoch 52/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3480.9169 - mae: 3480.9169\n",
            "Epoch 53/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3595.7934 - mae: 3595.7934\n",
            "Epoch 54/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3730.8383 - mae: 3730.8383\n",
            "Epoch 55/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3680.5137 - mae: 3680.5137\n",
            "Epoch 56/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4077.7030 - mae: 4077.7030\n",
            "Epoch 57/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3852.6787 - mae: 3852.6787\n",
            "Epoch 58/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4032.7248 - mae: 4032.7248\n",
            "Epoch 59/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3430.4038 - mae: 3430.4038\n",
            "Epoch 60/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3860.0623 - mae: 3860.0623\n",
            "Epoch 61/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3777.0879 - mae: 3777.0879\n",
            "Epoch 62/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3971.0059 - mae: 3971.0059\n",
            "Epoch 63/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3986.0315 - mae: 3986.0315\n",
            "Epoch 64/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3627.6161 - mae: 3627.6161\n",
            "Epoch 65/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3696.7183 - mae: 3696.7183\n",
            "Epoch 66/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3511.1403 - mae: 3511.1403\n",
            "Epoch 67/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3623.9307 - mae: 3623.9307\n",
            "Epoch 68/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3921.6820 - mae: 3921.6820\n",
            "Epoch 69/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3648.2867 - mae: 3648.2867\n",
            "Epoch 70/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3541.1022 - mae: 3541.1022\n",
            "Epoch 71/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3803.9851 - mae: 3803.9851\n",
            "Epoch 72/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3574.6176 - mae: 3574.6176\n",
            "Epoch 73/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3885.1369 - mae: 3885.1369\n",
            "Epoch 74/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4049.2986 - mae: 4049.2986\n",
            "Epoch 75/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3826.6770 - mae: 3826.6770\n",
            "Epoch 76/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3563.9858 - mae: 3563.9858\n",
            "Epoch 77/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3965.9309 - mae: 3965.9309\n",
            "Epoch 78/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3828.2307 - mae: 3828.2307\n",
            "Epoch 79/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3674.8753 - mae: 3674.8753\n",
            "Epoch 80/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3495.0519 - mae: 3495.0519\n",
            "Epoch 81/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3542.3234 - mae: 3542.3234\n",
            "Epoch 82/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4003.5689 - mae: 4003.5689\n",
            "Epoch 83/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3670.9037 - mae: 3670.9037\n",
            "Epoch 84/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3495.2519 - mae: 3495.2519\n",
            "Epoch 85/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3425.7304 - mae: 3425.7304\n",
            "Epoch 86/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3584.4186 - mae: 3584.4186\n",
            "Epoch 87/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4134.3345 - mae: 4134.3345\n",
            "Epoch 88/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3761.7082 - mae: 3761.7082\n",
            "Epoch 89/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3402.7206 - mae: 3402.7206\n",
            "Epoch 90/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3707.3154 - mae: 3707.3154\n",
            "Epoch 91/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3576.3802 - mae: 3576.3802\n",
            "Epoch 92/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3785.0495 - mae: 3785.0495\n",
            "Epoch 93/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3834.1476 - mae: 3834.1476\n",
            "Epoch 94/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4003.0900 - mae: 4003.0900\n",
            "Epoch 95/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3411.7742 - mae: 3411.7742\n",
            "Epoch 96/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3488.8999 - mae: 3488.8999\n",
            "Epoch 97/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3660.1648 - mae: 3660.1648\n",
            "Epoch 98/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3892.1973 - mae: 3892.1973\n",
            "Epoch 99/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3311.2504 - mae: 3311.2504\n",
            "Epoch 100/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3484.7946 - mae: 3484.7946\n",
            "Epoch 101/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3584.3132 - mae: 3584.3132\n",
            "Epoch 102/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3539.9048 - mae: 3539.9048\n",
            "Epoch 103/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3343.3560 - mae: 3343.3560\n",
            "Epoch 104/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3599.6320 - mae: 3599.6320\n",
            "Epoch 105/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3825.3532 - mae: 3825.3532\n",
            "Epoch 106/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3507.1988 - mae: 3507.1988\n",
            "Epoch 107/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3745.4574 - mae: 3745.4574\n",
            "Epoch 108/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3549.1305 - mae: 3549.1305\n",
            "Epoch 109/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3470.5452 - mae: 3470.5452\n",
            "Epoch 110/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3920.0164 - mae: 3920.0164\n",
            "Epoch 111/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4097.4281 - mae: 4097.4281\n",
            "Epoch 112/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3693.0976 - mae: 3693.0976\n",
            "Epoch 113/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3735.6337 - mae: 3735.6337\n",
            "Epoch 114/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3738.8447 - mae: 3738.8447\n",
            "Epoch 115/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3587.2250 - mae: 3587.2250\n",
            "Epoch 116/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3972.7347 - mae: 3972.7347\n",
            "Epoch 117/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3638.3654 - mae: 3638.3654\n",
            "Epoch 118/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3443.6516 - mae: 3443.6516\n",
            "Epoch 119/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3849.1678 - mae: 3849.1678\n",
            "Epoch 120/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3937.4280 - mae: 3937.4280\n",
            "Epoch 121/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3767.4558 - mae: 3767.4558\n",
            "Epoch 122/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3609.8875 - mae: 3609.8875\n",
            "Epoch 123/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3687.5628 - mae: 3687.5628\n",
            "Epoch 124/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3407.1122 - mae: 3407.1122\n",
            "Epoch 125/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3689.8041 - mae: 3689.8041\n",
            "Epoch 126/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3762.8466 - mae: 3762.8466\n",
            "Epoch 127/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3669.8885 - mae: 3669.8885\n",
            "Epoch 128/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3903.2590 - mae: 3903.2590\n",
            "Epoch 129/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3886.2049 - mae: 3886.2049\n",
            "Epoch 130/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3674.9560 - mae: 3674.9560\n",
            "Epoch 131/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3517.3005 - mae: 3517.3005\n",
            "Epoch 132/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3967.7694 - mae: 3967.7694\n",
            "Epoch 133/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3701.2076 - mae: 3701.2076\n",
            "Epoch 134/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3800.0573 - mae: 3800.0573\n",
            "Epoch 135/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3505.1072 - mae: 3505.1072\n",
            "Epoch 136/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3525.7987 - mae: 3525.7987\n",
            "Epoch 137/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3479.3464 - mae: 3479.3464\n",
            "Epoch 138/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4207.6549 - mae: 4207.6549\n",
            "Epoch 139/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3698.3673 - mae: 3698.3673\n",
            "Epoch 140/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3966.1915 - mae: 3966.1915\n",
            "Epoch 141/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4112.0845 - mae: 4112.0845\n",
            "Epoch 142/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3655.9198 - mae: 3655.9198\n",
            "Epoch 143/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3619.9132 - mae: 3619.9132\n",
            "Epoch 144/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3835.0475 - mae: 3835.0475\n",
            "Epoch 145/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3995.3411 - mae: 3995.3411\n",
            "Epoch 146/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3827.9381 - mae: 3827.9381\n",
            "Epoch 147/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3750.9660 - mae: 3750.9660\n",
            "Epoch 148/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3729.4095 - mae: 3729.4095\n",
            "Epoch 149/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3482.8721 - mae: 3482.8721\n",
            "Epoch 150/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3722.4952 - mae: 3722.4952\n",
            "Epoch 151/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3663.6623 - mae: 3663.6623\n",
            "Epoch 152/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3566.4200 - mae: 3566.4200\n",
            "Epoch 153/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3637.8552 - mae: 3637.8552\n",
            "Epoch 154/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4098.2607 - mae: 4098.2607\n",
            "Epoch 155/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3698.1657 - mae: 3698.1657\n",
            "Epoch 156/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3520.3637 - mae: 3520.3637\n",
            "Epoch 157/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3355.7934 - mae: 3355.7934\n",
            "Epoch 158/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3710.5289 - mae: 3710.5289\n",
            "Epoch 159/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3546.2860 - mae: 3546.2860\n",
            "Epoch 160/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3830.8669 - mae: 3830.8669\n",
            "Epoch 161/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3517.1519 - mae: 3517.1519\n",
            "Epoch 162/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3581.7552 - mae: 3581.7552\n",
            "Epoch 163/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3547.3027 - mae: 3547.3027\n",
            "Epoch 164/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3582.8604 - mae: 3582.8604\n",
            "Epoch 165/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3591.1705 - mae: 3591.1705\n",
            "Epoch 166/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3796.3375 - mae: 3796.3375\n",
            "Epoch 167/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3834.3110 - mae: 3834.3110\n",
            "Epoch 168/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3697.8337 - mae: 3697.8337\n",
            "Epoch 169/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3648.9188 - mae: 3648.9188\n",
            "Epoch 170/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4114.4943 - mae: 4114.4943\n",
            "Epoch 171/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3713.5680 - mae: 3713.5680\n",
            "Epoch 172/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3698.2050 - mae: 3698.2050\n",
            "Epoch 173/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3770.3476 - mae: 3770.3476\n",
            "Epoch 174/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3454.2842 - mae: 3454.2842\n",
            "Epoch 175/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3777.2122 - mae: 3777.2122\n",
            "Epoch 176/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3801.6710 - mae: 3801.6710\n",
            "Epoch 177/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3629.1190 - mae: 3629.1190\n",
            "Epoch 178/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3788.5259 - mae: 3788.5259\n",
            "Epoch 179/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3610.3196 - mae: 3610.3196\n",
            "Epoch 180/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4107.8173 - mae: 4107.8173\n",
            "Epoch 181/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3904.0039 - mae: 3904.0039\n",
            "Epoch 182/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3730.2196 - mae: 3730.2196\n",
            "Epoch 183/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3499.9919 - mae: 3499.9919\n",
            "Epoch 184/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3469.9639 - mae: 3469.9639\n",
            "Epoch 185/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3400.0718 - mae: 3400.0718\n",
            "Epoch 186/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3742.6265 - mae: 3742.6265\n",
            "Epoch 187/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3890.2122 - mae: 3890.2122\n",
            "Epoch 188/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3697.3865 - mae: 3697.3865\n",
            "Epoch 189/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3427.1574 - mae: 3427.1574\n",
            "Epoch 190/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3653.1805 - mae: 3653.1805\n",
            "Epoch 191/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3608.9645 - mae: 3608.9645\n",
            "Epoch 192/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3723.5283 - mae: 3723.5283\n",
            "Epoch 193/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3673.7847 - mae: 3673.7847\n",
            "Epoch 194/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3821.0160 - mae: 3821.0160\n",
            "Epoch 195/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3512.7367 - mae: 3512.7367\n",
            "Epoch 196/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3423.4851 - mae: 3423.4851\n",
            "Epoch 197/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3848.9203 - mae: 3848.9203\n",
            "Epoch 198/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3602.9723 - mae: 3602.9723\n",
            "Epoch 199/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3634.5122 - mae: 3634.5122\n",
            "Epoch 200/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3892.6989 - mae: 3892.6989\n",
            "Epoch 201/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3552.7311 - mae: 3552.7311\n",
            "Epoch 202/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3644.2975 - mae: 3644.2975\n",
            "Epoch 203/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4077.8475 - mae: 4077.8475\n",
            "Epoch 204/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3778.5290 - mae: 3778.5290\n",
            "Epoch 205/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3617.0107 - mae: 3617.0107\n",
            "Epoch 206/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3869.9003 - mae: 3869.9003\n",
            "Epoch 207/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3646.4296 - mae: 3646.4296\n",
            "Epoch 208/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3449.9544 - mae: 3449.9544\n",
            "Epoch 209/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3544.1012 - mae: 3544.1012\n",
            "Epoch 210/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3688.6302 - mae: 3688.6302\n",
            "Epoch 211/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3558.4348 - mae: 3558.4348\n",
            "Epoch 212/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3620.6401 - mae: 3620.6401\n",
            "Epoch 213/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3357.9390 - mae: 3357.9390\n",
            "Epoch 214/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3554.3884 - mae: 3554.3884\n",
            "Epoch 215/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3765.7532 - mae: 3765.7532\n",
            "Epoch 216/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3779.1132 - mae: 3779.1132\n",
            "Epoch 217/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3553.8043 - mae: 3553.8043\n",
            "Epoch 218/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3481.2568 - mae: 3481.2568\n",
            "Epoch 219/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3809.4272 - mae: 3809.4272\n",
            "Epoch 220/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3689.3125 - mae: 3689.3125\n",
            "Epoch 221/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3502.3897 - mae: 3502.3897\n",
            "Epoch 222/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4152.4941 - mae: 4152.4941\n",
            "Epoch 223/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3530.5615 - mae: 3530.5615\n",
            "Epoch 224/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3904.6995 - mae: 3904.6995\n",
            "Epoch 225/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3289.1840 - mae: 3289.1840\n",
            "Epoch 226/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3520.0681 - mae: 3520.0681\n",
            "Epoch 227/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3377.4836 - mae: 3377.4836\n",
            "Epoch 228/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3478.8287 - mae: 3478.8287\n",
            "Epoch 229/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3760.5107 - mae: 3760.5107\n",
            "Epoch 230/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3847.5711 - mae: 3847.5711\n",
            "Epoch 231/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3583.3861 - mae: 3583.3861\n",
            "Epoch 232/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3533.8789 - mae: 3533.8789\n",
            "Epoch 233/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3519.3274 - mae: 3519.3274\n",
            "Epoch 234/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3197.8300 - mae: 3197.8300\n",
            "Epoch 235/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3529.2819 - mae: 3529.2819\n",
            "Epoch 236/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3354.9602 - mae: 3354.9602\n",
            "Epoch 237/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3794.3916 - mae: 3794.3916\n",
            "Epoch 238/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3460.6727 - mae: 3460.6727\n",
            "Epoch 239/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3516.8105 - mae: 3516.8105\n",
            "Epoch 240/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3695.4094 - mae: 3695.4094\n",
            "Epoch 241/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3751.8374 - mae: 3751.8374\n",
            "Epoch 242/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3409.6800 - mae: 3409.6800\n",
            "Epoch 243/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4056.7703 - mae: 4056.7703\n",
            "Epoch 244/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3527.3739 - mae: 3527.3739\n",
            "Epoch 245/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3847.8331 - mae: 3847.8331\n",
            "Epoch 246/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3604.1596 - mae: 3604.1596\n",
            "Epoch 247/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4049.3744 - mae: 4049.3744\n",
            "Epoch 248/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3952.7292 - mae: 3952.7292\n",
            "Epoch 249/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3589.3945 - mae: 3589.3945\n",
            "Epoch 250/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3568.4055 - mae: 3568.4055\n",
            "Epoch 251/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3803.8378 - mae: 3803.8378\n",
            "Epoch 252/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3507.7607 - mae: 3507.7607\n",
            "Epoch 253/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3815.0231 - mae: 3815.0231\n",
            "Epoch 254/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3614.4602 - mae: 3614.4602\n",
            "Epoch 255/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3249.8275 - mae: 3249.8275\n",
            "Epoch 256/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3362.4886 - mae: 3362.4886\n",
            "Epoch 257/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3663.2946 - mae: 3663.2946\n",
            "Epoch 258/400\n",
            "34/34 [==============================] - 0s 4ms/step - loss: 3595.1919 - mae: 3595.1919\n",
            "Epoch 259/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3731.1622 - mae: 3731.1622\n",
            "Epoch 260/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3405.0825 - mae: 3405.0825\n",
            "Epoch 261/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3682.0405 - mae: 3682.0405\n",
            "Epoch 262/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3579.0871 - mae: 3579.0871\n",
            "Epoch 263/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3596.3169 - mae: 3596.3169\n",
            "Epoch 264/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3809.9217 - mae: 3809.9217\n",
            "Epoch 265/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3566.6334 - mae: 3566.6334\n",
            "Epoch 266/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3591.9618 - mae: 3591.9618\n",
            "Epoch 267/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3827.2911 - mae: 3827.2911\n",
            "Epoch 268/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3756.8863 - mae: 3756.8863\n",
            "Epoch 269/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3409.4890 - mae: 3409.4890\n",
            "Epoch 270/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3477.4085 - mae: 3477.4085\n",
            "Epoch 271/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3413.9517 - mae: 3413.9517\n",
            "Epoch 272/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3911.6556 - mae: 3911.6556\n",
            "Epoch 273/400\n",
            "34/34 [==============================] - 0s 4ms/step - loss: 3553.8715 - mae: 3553.8715\n",
            "Epoch 274/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3816.6566 - mae: 3816.6566\n",
            "Epoch 275/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3459.3929 - mae: 3459.3929\n",
            "Epoch 276/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3723.8051 - mae: 3723.8051\n",
            "Epoch 277/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3631.7893 - mae: 3631.7893\n",
            "Epoch 278/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3539.6192 - mae: 3539.6192\n",
            "Epoch 279/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3767.7751 - mae: 3767.7751\n",
            "Epoch 280/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3467.8848 - mae: 3467.8848\n",
            "Epoch 281/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3739.1689 - mae: 3739.1689\n",
            "Epoch 282/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3429.5522 - mae: 3429.5522\n",
            "Epoch 283/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3456.2392 - mae: 3456.2392\n",
            "Epoch 284/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3555.0747 - mae: 3555.0747\n",
            "Epoch 285/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3766.4354 - mae: 3766.4354\n",
            "Epoch 286/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3749.6417 - mae: 3749.6417\n",
            "Epoch 287/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4181.0767 - mae: 4181.0767\n",
            "Epoch 288/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3560.2351 - mae: 3560.2351\n",
            "Epoch 289/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3689.2153 - mae: 3689.2153\n",
            "Epoch 290/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3482.3566 - mae: 3482.3566\n",
            "Epoch 291/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3748.6253 - mae: 3748.6253\n",
            "Epoch 292/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3522.1832 - mae: 3522.1832\n",
            "Epoch 293/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3537.4496 - mae: 3537.4496\n",
            "Epoch 294/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3735.7343 - mae: 3735.7343\n",
            "Epoch 295/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3571.8537 - mae: 3571.8537\n",
            "Epoch 296/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3835.5293 - mae: 3835.5293\n",
            "Epoch 297/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3580.2920 - mae: 3580.2920\n",
            "Epoch 298/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3663.4189 - mae: 3663.4189\n",
            "Epoch 299/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3289.8917 - mae: 3289.8917\n",
            "Epoch 300/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3666.7290 - mae: 3666.7290\n",
            "Epoch 301/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4095.2121 - mae: 4095.2121\n",
            "Epoch 302/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3752.8479 - mae: 3752.8479\n",
            "Epoch 303/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3568.8273 - mae: 3568.8273\n",
            "Epoch 304/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3592.4885 - mae: 3592.4885\n",
            "Epoch 305/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3510.9737 - mae: 3510.9737\n",
            "Epoch 306/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3928.7024 - mae: 3928.7024\n",
            "Epoch 307/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3629.6059 - mae: 3629.6059\n",
            "Epoch 308/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3670.6511 - mae: 3670.6511\n",
            "Epoch 309/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3419.8422 - mae: 3419.8422\n",
            "Epoch 310/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3693.1818 - mae: 3693.1818\n",
            "Epoch 311/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3279.9115 - mae: 3279.9115\n",
            "Epoch 312/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3963.4489 - mae: 3963.4489\n",
            "Epoch 313/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3634.5527 - mae: 3634.5527\n",
            "Epoch 314/400\n",
            "34/34 [==============================] - 0s 4ms/step - loss: 3583.0851 - mae: 3583.0851\n",
            "Epoch 315/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3328.1532 - mae: 3328.1532\n",
            "Epoch 316/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3644.6540 - mae: 3644.6540\n",
            "Epoch 317/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3539.4507 - mae: 3539.4507\n",
            "Epoch 318/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3640.9916 - mae: 3640.9916\n",
            "Epoch 319/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3497.2021 - mae: 3497.2021\n",
            "Epoch 320/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3287.1861 - mae: 3287.1861\n",
            "Epoch 321/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3574.6767 - mae: 3574.6767\n",
            "Epoch 322/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3571.5271 - mae: 3571.5271\n",
            "Epoch 323/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3436.9105 - mae: 3436.9105\n",
            "Epoch 324/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3804.8888 - mae: 3804.8888\n",
            "Epoch 325/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3444.2124 - mae: 3444.2124\n",
            "Epoch 326/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3773.5729 - mae: 3773.5729\n",
            "Epoch 327/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3329.9848 - mae: 3329.9848\n",
            "Epoch 328/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3881.9504 - mae: 3881.9504\n",
            "Epoch 329/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3913.2936 - mae: 3913.2936\n",
            "Epoch 330/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3957.5199 - mae: 3957.5199\n",
            "Epoch 331/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3945.7679 - mae: 3945.7679\n",
            "Epoch 332/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3723.5975 - mae: 3723.5975\n",
            "Epoch 333/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3696.2752 - mae: 3696.2752\n",
            "Epoch 334/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3626.9901 - mae: 3626.9901\n",
            "Epoch 335/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3433.5514 - mae: 3433.5514\n",
            "Epoch 336/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3578.4484 - mae: 3578.4484\n",
            "Epoch 337/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3972.8120 - mae: 3972.8120\n",
            "Epoch 338/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3695.3607 - mae: 3695.3607\n",
            "Epoch 339/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3494.5404 - mae: 3494.5404\n",
            "Epoch 340/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3861.6394 - mae: 3861.6394\n",
            "Epoch 341/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3471.7262 - mae: 3471.7262\n",
            "Epoch 342/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3432.5325 - mae: 3432.5325\n",
            "Epoch 343/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3476.1864 - mae: 3476.1864\n",
            "Epoch 344/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3631.1080 - mae: 3631.1080\n",
            "Epoch 345/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3445.4235 - mae: 3445.4235\n",
            "Epoch 346/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3392.7074 - mae: 3392.7074\n",
            "Epoch 347/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3920.4003 - mae: 3920.4003\n",
            "Epoch 348/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3880.0681 - mae: 3880.0681\n",
            "Epoch 349/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3613.3591 - mae: 3613.3591\n",
            "Epoch 350/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3649.7434 - mae: 3649.7434\n",
            "Epoch 351/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3569.7150 - mae: 3569.7150\n",
            "Epoch 352/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3945.0270 - mae: 3945.0270\n",
            "Epoch 353/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3427.0797 - mae: 3427.0797\n",
            "Epoch 354/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3367.3527 - mae: 3367.3527\n",
            "Epoch 355/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3600.8058 - mae: 3600.8058\n",
            "Epoch 356/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3558.1395 - mae: 3558.1395\n",
            "Epoch 357/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3990.7143 - mae: 3990.7143\n",
            "Epoch 358/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3844.4103 - mae: 3844.4103\n",
            "Epoch 359/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3909.5000 - mae: 3909.5000\n",
            "Epoch 360/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3852.7075 - mae: 3852.7075\n",
            "Epoch 361/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3458.4224 - mae: 3458.4224\n",
            "Epoch 362/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3751.8264 - mae: 3751.8264\n",
            "Epoch 363/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3668.4439 - mae: 3668.4439\n",
            "Epoch 364/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3662.7093 - mae: 3662.7093\n",
            "Epoch 365/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3565.1676 - mae: 3565.1676\n",
            "Epoch 366/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3693.1643 - mae: 3693.1643\n",
            "Epoch 367/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3466.7584 - mae: 3466.7584\n",
            "Epoch 368/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3653.9810 - mae: 3653.9810\n",
            "Epoch 369/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3330.4443 - mae: 3330.4443\n",
            "Epoch 370/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3331.7343 - mae: 3331.7343\n",
            "Epoch 371/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3644.4123 - mae: 3644.4123\n",
            "Epoch 372/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3552.3071 - mae: 3552.3071\n",
            "Epoch 373/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3425.0807 - mae: 3425.0807\n",
            "Epoch 374/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3568.0591 - mae: 3568.0591\n",
            "Epoch 375/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3493.9605 - mae: 3493.9605\n",
            "Epoch 376/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3475.4344 - mae: 3475.4344\n",
            "Epoch 377/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 4048.5258 - mae: 4048.5258\n",
            "Epoch 378/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3790.6575 - mae: 3790.6575\n",
            "Epoch 379/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3319.2613 - mae: 3319.2613\n",
            "Epoch 380/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3814.9842 - mae: 3814.9842\n",
            "Epoch 381/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3581.4995 - mae: 3581.4995\n",
            "Epoch 382/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3504.9134 - mae: 3504.9134\n",
            "Epoch 383/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3721.9548 - mae: 3721.9548\n",
            "Epoch 384/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3746.5439 - mae: 3746.5439\n",
            "Epoch 385/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3809.7526 - mae: 3809.7526\n",
            "Epoch 386/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 4036.6216 - mae: 4036.6216\n",
            "Epoch 387/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3344.1269 - mae: 3344.1269\n",
            "Epoch 388/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3475.3030 - mae: 3475.3030\n",
            "Epoch 389/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3625.5812 - mae: 3625.5812\n",
            "Epoch 390/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3734.7636 - mae: 3734.7636\n",
            "Epoch 391/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3625.9988 - mae: 3625.9988\n",
            "Epoch 392/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3773.0038 - mae: 3773.0038\n",
            "Epoch 393/400\n",
            "34/34 [==============================] - 0s 2ms/step - loss: 3739.8028 - mae: 3739.8028\n",
            "Epoch 394/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3737.4041 - mae: 3737.4041\n",
            "Epoch 395/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3542.5240 - mae: 3542.5240\n",
            "Epoch 396/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3495.5732 - mae: 3495.5732\n",
            "Epoch 397/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3604.8178 - mae: 3604.8178\n",
            "Epoch 398/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3545.4269 - mae: 3545.4269\n",
            "Epoch 399/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3811.7857 - mae: 3811.7857\n",
            "Epoch 400/400\n",
            "34/34 [==============================] - 0s 3ms/step - loss: 3811.8946 - mae: 3811.8946\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9Be6bjZynk9a",
        "outputId": "c73e632f-c19e-4ef7-f7b3-43513dfc1bbe"
      },
      "source": [
        "# Evaluate on test data \n",
        "model.evaluate(X_test , y_test)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "9/9 [==============================] - 0s 2ms/step - loss: 3268.9297 - mae: 3268.9297\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[3268.9296875, 3268.9296875]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 60
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 298
        },
        "id": "iywONgp3DnoC",
        "outputId": "5ab6fda5-e74d-48bd-ff5b-51161e7a7bbb"
      },
      "source": [
        "# Let's plot the loss curve Vs Epochs \n",
        "pd.DataFrame(history.history).plot()\n",
        "plt.ylabel('Loss')\n",
        "plt.xlabel('Epochs')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 0, 'Epochs')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 61
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEICAYAAACuxNj9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd3wc1bXA8d/ZXTVbcpflIhe527jKsi0DoSZAIGASSICQhyG0EB4hjQDhJRAISYAQSggtwWAgFNOCITRTTbFky13usiXbki2r97q79/0xo21aNaOVjDnfz0cfzd65M3M0kvbsLTMjxhiUUkqp9jh6OwCllFJHPk0WSimlOqTJQimlVIc0WSillOqQJgullFId0mShlFKqQxFNFiJyvYhki8gWEfm5XTZIRFaIyC77+0C7XETkQRHJEZFNIpIasJ/Fdv1dIrI4kjErpZRqTSJ1nYWITAdeAOYDTcA7wE+Aq4AyY8xfROQmYKAx5kYRORO4DjgTWAA8YIxZICKDgCwgDTDAWmCuMaa8rWMPGTLEjB07NiI/l1JKHa3Wrl1bYoxJDLfOFcHjTgUyjTF1ACLyCfA9YBFwkl1nKfAxcKNd/rSxsleGiAwQkeF23RXGmDJ7PyuAM4Dn2zrw2LFjycrKisCPpJRSRy8R2dvWukh2Q2UD3xCRwSLSB6vFMApIMsYctOsUAkn28khgf8D2+XZZW+VKKaV6SMRaFsaYbSJyF/AeUAtsADwhdYyIdEs/mIhchdXFxejRo7tjl0oppWwRHeA2xjxhjJlrjDkBKAd2Aofs7iXs70V29QKslkeLZLusrfLQYz1ujEkzxqQlJobtclNKKXWYIjlmgYgMNcYUichorPGKdCAFWAz8xf7+ul19OfC/IvIC1gB3pTHmoIi8C/ypZdYUcBpwcyTjVkp9fTU3N5Ofn09DQ0NvhxIxsbGxJCcnExUV1eltIposgFdEZDDQDFxrjKkQkb8Ay0TkcmAv8AO77ltY4xo5QB1wGYAxpkxE7gDW2PVubxnsVkqp7pafn09CQgJjx45FRHo7nG5njKG0tJT8/HxSUlI6vV1Ek4Ux5hthykqBU8OUG+DaNvazBFjS7QEqpVSIhoaGozZRAIgIgwcPpri4uEvb6RXcSikV4mhNFC0O5+fTZBHgUP5uVv3rF+zftbG3Q1FKqSOKJosAlUX5LMxfQum+bb0dilLqayw+Pr63Q2hFk0UAh9NpLXi9vRuIUkodYTRZBBCxTofX6+mgplJKRZ4xhhtuuIHp06czY8YMXnzxRQAOHjzICSecwOzZs5k+fTqffvopHo+HSy+91Ff3vvvu69ZYIj119ivF37Jw924gSqkjwh/e2MLWA1Xdus9pI/px69nHdKruq6++yoYNG9i4cSMlJSXMmzePE044geeee47TTz+dW265BY/HQ11dHRs2bKCgoIDs7GwAKioqujVubVkEcDis3GmMdkMppXrfZ599xkUXXYTT6SQpKYkTTzyRNWvWMG/ePJ588kluu+02Nm/eTEJCAuPGjWPPnj1cd911vPPOO/Tr169bY9GWRSCH1bIw2g2llIJOtwB62gknnMDKlSv573//y6WXXsovf/lLLrnkEjZu3Mi7777Lo48+yrJly1iypPsuT9OWRQB/N5QmC6VU7/vGN77Biy++iMfjobi4mJUrVzJ//nz27t1LUlISV155JVdccQXr1q2jpKQEr9fLeeedxx//+EfWrVvXrbFoyyKArxtKZ0MppY4A3/3ud1m1ahWzZs1CRLj77rsZNmwYS5cu5Z577iEqKor4+HiefvppCgoKuOyyy/Da719//vOfuzUWTRYBxGE1tIzRloVSqvfU1NQA1pXW99xzD/fcc0/Q+sWLF7N4cesnTHd3ayKQdkMF0G4opZQKT5NFAKdTu6GUUiocTRYBWrqh0G4opZQKoskigMOh3VBKKRWOJosAvm4ovShPKaWCaLIIpC0LpZQKS5NFAGfLbCgds1BKqSCaLALobCillApPk0UAnQ2llDoS5OXlMWXKFC699FImTZrExRdfzPvvv89xxx3HxIkTWb16NatXr2bhwoXMmTOHY489lh07dgDg8Xi44YYbmDdvHjNnzuSxxx7rlpj0Cu4ALS0LHbNQSgHw9k1QuLl79zlsBnz7Lx1Wy8nJ4aWXXmLJkiXMmzeP5557js8++4zly5fzpz/9iaeffppPP/0Ul8vF+++/z29/+1teeeUVnnjiCfr378+aNWtobGzkuOOO47TTTiMlJeVLha3JIoAvWehsKKVUL0tJSWHGjBkAHHPMMZx66qmICDNmzCAvL4/KykoWL17Mrl27EBGam5sBeO+999i0aRMvv/wyAJWVlezatUuTRXfy3e5Dk4VS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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Idm1L1H3Jtgw"
      },
      "source": [
        "Seems even increasing the learning rate and the number of epochs the model isn't performing an greater level. "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ddw4eH_QkAWu"
      },
      "source": [
        "## Import the Boston pricing dataset from TensorFlow `tf.keras.datasets` and model it."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5hWe951WkHcQ"
      },
      "source": [
        "# Getting the boston datasets from tensorflow datasets \n",
        "\n",
        "(X_train , y_train) , (X_test , y_test) = tf.keras.datasets.boston_housing.load_data(path = 'boston_housing_npz' , \n",
        "                                                                           test_split = 0.2 , seed = 42)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "mdkaV9PRlBF0",
        "outputId": "c219afe1-6e68-4bcb-de06-37286361e149"
      },
      "source": [
        "# Checkin the shape of our data \n",
        "X_train.shape , X_test.shape , y_train.shape , y_test.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((404, 13), (102, 13), (404,), (102,))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 63
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "J6BcdH5JlBKo"
      },
      "source": [
        "This datasets is numpy array format and it's normalized. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "NiIolOC3lOq6",
        "outputId": "c8bd60f1-d9fb-4bbd-b278-a7f7bb13bf61"
      },
      "source": [
        "# Let's build a model \n",
        "\n",
        "tf.random.set_seed(42)\n",
        "\n",
        "# Building a model \n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(200), \n",
        "  tf.keras.layers.Dense(200), \n",
        "  tf.keras.layers.Dense(150),\n",
        "  tf.keras.layers.Dense(100),\n",
        "  tf.keras.layers.Dense(1)\n",
        "])\n",
        "\n",
        "\n",
        "# Compile the model \n",
        "model.compile(loss = tf.keras.losses.mae , \n",
        "              optimizer = tf.keras.optimizers.Adam() , \n",
        "              metrics = ['mae'])\n",
        "\n",
        "# Fit the model \n",
        "history = model.fit(X_train , y_train , epochs  = 300 )"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/300\n",
            "13/13 [==============================] - 1s 3ms/step - loss: 129.3539 - mae: 129.3539\n",
            "Epoch 2/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 20.6014 - mae: 20.6014\n",
            "Epoch 3/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 8.3834 - mae: 8.3834\n",
            "Epoch 4/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.9895 - mae: 6.9895\n",
            "Epoch 5/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 7.0010 - mae: 7.0010\n",
            "Epoch 6/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.0367 - mae: 6.0367\n",
            "Epoch 7/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.8780 - mae: 6.8780\n",
            "Epoch 8/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.7407 - mae: 6.7407\n",
            "Epoch 9/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 7.9784 - mae: 7.9784\n",
            "Epoch 10/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 7.8341 - mae: 7.8341\n",
            "Epoch 11/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 7.6557 - mae: 7.6557\n",
            "Epoch 12/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.9376 - mae: 5.9376\n",
            "Epoch 13/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.6979 - mae: 6.6979\n",
            "Epoch 14/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 7.4715 - mae: 7.4715\n",
            "Epoch 15/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.7241 - mae: 5.7241\n",
            "Epoch 16/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.8773 - mae: 5.8773\n",
            "Epoch 17/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.5180 - mae: 5.5180\n",
            "Epoch 18/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 8.4059 - mae: 8.4059\n",
            "Epoch 19/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.3483 - mae: 6.3483\n",
            "Epoch 20/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.3155 - mae: 6.3155\n",
            "Epoch 21/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.3113 - mae: 6.3113\n",
            "Epoch 22/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.0814 - mae: 6.0814\n",
            "Epoch 23/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.9403 - mae: 6.9403\n",
            "Epoch 24/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.7545 - mae: 5.7545\n",
            "Epoch 25/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.3316 - mae: 6.3316\n",
            "Epoch 26/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5784 - mae: 5.5784\n",
            "Epoch 27/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.9398 - mae: 5.9398\n",
            "Epoch 28/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.6698 - mae: 5.6698\n",
            "Epoch 29/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.6252 - mae: 6.6252\n",
            "Epoch 30/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 6.1855 - mae: 6.1855\n",
            "Epoch 31/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.6457 - mae: 5.6457\n",
            "Epoch 32/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.3932 - mae: 5.3932\n",
            "Epoch 33/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2963 - mae: 5.2963\n",
            "Epoch 34/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.8925 - mae: 5.8925\n",
            "Epoch 35/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.6615 - mae: 5.6615\n",
            "Epoch 36/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.9160 - mae: 5.9160\n",
            "Epoch 37/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.4230 - mae: 5.4230\n",
            "Epoch 38/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.6512 - mae: 5.6512\n",
            "Epoch 39/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5391 - mae: 5.5391\n",
            "Epoch 40/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1130 - mae: 5.1130\n",
            "Epoch 41/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.5098 - mae: 6.5098\n",
            "Epoch 42/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 6.5974 - mae: 6.5974\n",
            "Epoch 43/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 6.2597 - mae: 6.2597\n",
            "Epoch 44/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.6673 - mae: 5.6673\n",
            "Epoch 45/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0402 - mae: 5.0402\n",
            "Epoch 46/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5660 - mae: 5.5660\n",
            "Epoch 47/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.4350 - mae: 5.4350\n",
            "Epoch 48/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.7583 - mae: 5.7583\n",
            "Epoch 49/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.3485 - mae: 5.3485\n",
            "Epoch 50/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2655 - mae: 5.2655\n",
            "Epoch 51/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.1045 - mae: 5.1045\n",
            "Epoch 52/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.1413 - mae: 6.1413\n",
            "Epoch 53/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.7580 - mae: 5.7580\n",
            "Epoch 54/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2498 - mae: 5.2498\n",
            "Epoch 55/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0166 - mae: 5.0166\n",
            "Epoch 56/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.3718 - mae: 5.3718\n",
            "Epoch 57/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.5352 - mae: 5.5352\n",
            "Epoch 58/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5139 - mae: 5.5139\n",
            "Epoch 59/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1393 - mae: 5.1393\n",
            "Epoch 60/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.4282 - mae: 5.4282\n",
            "Epoch 61/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1278 - mae: 5.1278\n",
            "Epoch 62/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.2092 - mae: 5.2092\n",
            "Epoch 63/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7745 - mae: 4.7745\n",
            "Epoch 64/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.9715 - mae: 4.9715\n",
            "Epoch 65/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1926 - mae: 5.1926\n",
            "Epoch 66/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2775 - mae: 5.2775\n",
            "Epoch 67/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2596 - mae: 5.2596\n",
            "Epoch 68/300\n",
            "13/13 [==============================] - 0s 5ms/step - loss: 4.7770 - mae: 4.7770\n",
            "Epoch 69/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6446 - mae: 4.6446\n",
            "Epoch 70/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4601 - mae: 4.4601\n",
            "Epoch 71/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8691 - mae: 4.8691\n",
            "Epoch 72/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.6335 - mae: 4.6335\n",
            "Epoch 73/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8880 - mae: 4.8880\n",
            "Epoch 74/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5781 - mae: 4.5781\n",
            "Epoch 75/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8734 - mae: 4.8734\n",
            "Epoch 76/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7847 - mae: 4.7847\n",
            "Epoch 77/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5717 - mae: 5.5717\n",
            "Epoch 78/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5889 - mae: 5.5889\n",
            "Epoch 79/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6659 - mae: 4.6659\n",
            "Epoch 80/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0758 - mae: 5.0758\n",
            "Epoch 81/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1826 - mae: 5.1826\n",
            "Epoch 82/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2998 - mae: 5.2998\n",
            "Epoch 83/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8318 - mae: 4.8318\n",
            "Epoch 84/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.8251 - mae: 4.8251\n",
            "Epoch 85/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.9637 - mae: 5.9637\n",
            "Epoch 86/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8164 - mae: 4.8164\n",
            "Epoch 87/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0617 - mae: 5.0617\n",
            "Epoch 88/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7987 - mae: 4.7987\n",
            "Epoch 89/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6851 - mae: 4.6851\n",
            "Epoch 90/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.8444 - mae: 4.8444\n",
            "Epoch 91/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.8917 - mae: 5.8917\n",
            "Epoch 92/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.4033 - mae: 5.4033\n",
            "Epoch 93/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.9204 - mae: 4.9204\n",
            "Epoch 94/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0396 - mae: 5.0396\n",
            "Epoch 95/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5812 - mae: 4.5812\n",
            "Epoch 96/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.7482 - mae: 5.7482\n",
            "Epoch 97/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 7.6296 - mae: 7.6296\n",
            "Epoch 98/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.3134 - mae: 5.3134\n",
            "Epoch 99/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5960 - mae: 4.5960\n",
            "Epoch 100/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8738 - mae: 4.8738\n",
            "Epoch 101/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.2646 - mae: 5.2646\n",
            "Epoch 102/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.6301 - mae: 5.6301\n",
            "Epoch 103/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.2773 - mae: 5.2773\n",
            "Epoch 104/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 6.2427 - mae: 6.2427\n",
            "Epoch 105/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.9997 - mae: 4.9997\n",
            "Epoch 106/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6101 - mae: 4.6101\n",
            "Epoch 107/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4970 - mae: 4.4970\n",
            "Epoch 108/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7029 - mae: 4.7029\n",
            "Epoch 109/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0346 - mae: 5.0346\n",
            "Epoch 110/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.7120 - mae: 4.7120\n",
            "Epoch 111/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5614 - mae: 4.5614\n",
            "Epoch 112/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1609 - mae: 5.1609\n",
            "Epoch 113/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2476 - mae: 4.2476\n",
            "Epoch 114/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4206 - mae: 4.4206\n",
            "Epoch 115/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6809 - mae: 4.6809\n",
            "Epoch 116/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6838 - mae: 4.6838\n",
            "Epoch 117/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.6524 - mae: 4.6524\n",
            "Epoch 118/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8768 - mae: 4.8768\n",
            "Epoch 119/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7339 - mae: 4.7339\n",
            "Epoch 120/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.7274 - mae: 4.7274\n",
            "Epoch 121/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7351 - mae: 4.7351\n",
            "Epoch 122/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8455 - mae: 4.8455\n",
            "Epoch 123/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0071 - mae: 5.0071\n",
            "Epoch 124/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5822 - mae: 4.5822\n",
            "Epoch 125/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4545 - mae: 4.4545\n",
            "Epoch 126/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2123 - mae: 4.2123\n",
            "Epoch 127/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5464 - mae: 4.5464\n",
            "Epoch 128/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6859 - mae: 4.6859\n",
            "Epoch 129/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5377 - mae: 4.5377\n",
            "Epoch 130/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6053 - mae: 4.6053\n",
            "Epoch 131/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.5002 - mae: 5.5002\n",
            "Epoch 132/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4003 - mae: 4.4003\n",
            "Epoch 133/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8358 - mae: 4.8358\n",
            "Epoch 134/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.9857 - mae: 4.9857\n",
            "Epoch 135/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6441 - mae: 4.6441\n",
            "Epoch 136/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.2134 - mae: 5.2134\n",
            "Epoch 137/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.1289 - mae: 5.1289\n",
            "Epoch 138/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0649 - mae: 5.0649\n",
            "Epoch 139/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4115 - mae: 4.4115\n",
            "Epoch 140/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3794 - mae: 4.3794\n",
            "Epoch 141/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4076 - mae: 4.4076\n",
            "Epoch 142/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6696 - mae: 4.6696\n",
            "Epoch 143/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6836 - mae: 4.6836\n",
            "Epoch 144/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.2320 - mae: 5.2320\n",
            "Epoch 145/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.0646 - mae: 5.0646\n",
            "Epoch 146/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5261 - mae: 4.5261\n",
            "Epoch 147/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1302 - mae: 4.1302\n",
            "Epoch 148/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.3520 - mae: 4.3520\n",
            "Epoch 149/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.9406 - mae: 4.9406\n",
            "Epoch 150/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.2960 - mae: 4.2960\n",
            "Epoch 151/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.2142 - mae: 4.2142\n",
            "Epoch 152/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4375 - mae: 4.4375\n",
            "Epoch 153/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7002 - mae: 4.7002\n",
            "Epoch 154/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4938 - mae: 4.4938\n",
            "Epoch 155/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.1520 - mae: 5.1520\n",
            "Epoch 156/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7543 - mae: 4.7543\n",
            "Epoch 157/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0489 - mae: 4.0489\n",
            "Epoch 158/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0036 - mae: 5.0036\n",
            "Epoch 159/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.8951 - mae: 4.8951\n",
            "Epoch 160/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3566 - mae: 4.3566\n",
            "Epoch 161/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3720 - mae: 4.3720\n",
            "Epoch 162/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.8692 - mae: 4.8692\n",
            "Epoch 163/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7802 - mae: 4.7802\n",
            "Epoch 164/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2529 - mae: 4.2529\n",
            "Epoch 165/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3100 - mae: 4.3100\n",
            "Epoch 166/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.8968 - mae: 3.8968\n",
            "Epoch 167/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4867 - mae: 4.4867\n",
            "Epoch 168/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1831 - mae: 5.1831\n",
            "Epoch 169/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2022 - mae: 4.2022\n",
            "Epoch 170/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0309 - mae: 5.0309\n",
            "Epoch 171/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7098 - mae: 4.7098\n",
            "Epoch 172/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8061 - mae: 4.8061\n",
            "Epoch 173/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.1329 - mae: 5.1329\n",
            "Epoch 174/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 5.3691 - mae: 5.3691\n",
            "Epoch 175/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.3522 - mae: 4.3522\n",
            "Epoch 176/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.8016 - mae: 5.8016\n",
            "Epoch 177/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.6031 - mae: 4.6031\n",
            "Epoch 178/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4648 - mae: 4.4648\n",
            "Epoch 179/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6798 - mae: 4.6798\n",
            "Epoch 180/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4176 - mae: 4.4176\n",
            "Epoch 181/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7245 - mae: 4.7245\n",
            "Epoch 182/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5714 - mae: 4.5714\n",
            "Epoch 183/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.6646 - mae: 4.6646\n",
            "Epoch 184/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8150 - mae: 4.8150\n",
            "Epoch 185/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3131 - mae: 4.3131\n",
            "Epoch 186/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8678 - mae: 4.8678\n",
            "Epoch 187/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1488 - mae: 4.1488\n",
            "Epoch 188/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3306 - mae: 4.3306\n",
            "Epoch 189/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2602 - mae: 4.2602\n",
            "Epoch 190/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1781 - mae: 4.1781\n",
            "Epoch 191/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2364 - mae: 4.2364\n",
            "Epoch 192/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1482 - mae: 4.1482\n",
            "Epoch 193/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1179 - mae: 4.1179\n",
            "Epoch 194/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.5884 - mae: 4.5884\n",
            "Epoch 195/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.6570 - mae: 3.6570\n",
            "Epoch 196/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4202 - mae: 4.4202\n",
            "Epoch 197/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0550 - mae: 4.0550\n",
            "Epoch 198/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0607 - mae: 4.0607\n",
            "Epoch 199/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9414 - mae: 3.9414\n",
            "Epoch 200/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2022 - mae: 4.2022\n",
            "Epoch 201/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1469 - mae: 4.1469\n",
            "Epoch 202/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.0622 - mae: 4.0622\n",
            "Epoch 203/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4730 - mae: 4.4730\n",
            "Epoch 204/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.1174 - mae: 4.1174\n",
            "Epoch 205/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.6476 - mae: 3.6476\n",
            "Epoch 206/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5830 - mae: 4.5830\n",
            "Epoch 207/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1462 - mae: 4.1462\n",
            "Epoch 208/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0083 - mae: 4.0083\n",
            "Epoch 209/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3114 - mae: 4.3114\n",
            "Epoch 210/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1871 - mae: 4.1871\n",
            "Epoch 211/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1846 - mae: 4.1846\n",
            "Epoch 212/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.8812 - mae: 4.8812\n",
            "Epoch 213/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4268 - mae: 4.4268\n",
            "Epoch 214/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6526 - mae: 4.6526\n",
            "Epoch 215/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.3147 - mae: 4.3147\n",
            "Epoch 216/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1017 - mae: 4.1017\n",
            "Epoch 217/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3650 - mae: 4.3650\n",
            "Epoch 218/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9877 - mae: 3.9877\n",
            "Epoch 219/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.7273 - mae: 3.7273\n",
            "Epoch 220/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7907 - mae: 4.7907\n",
            "Epoch 221/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4014 - mae: 4.4014\n",
            "Epoch 222/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.7913 - mae: 4.7913\n",
            "Epoch 223/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6117 - mae: 4.6117\n",
            "Epoch 224/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2255 - mae: 4.2255\n",
            "Epoch 225/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2137 - mae: 4.2137\n",
            "Epoch 226/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1411 - mae: 4.1411\n",
            "Epoch 227/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1357 - mae: 4.1357\n",
            "Epoch 228/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9127 - mae: 3.9127\n",
            "Epoch 229/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1664 - mae: 4.1664\n",
            "Epoch 230/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.8174 - mae: 3.8174\n",
            "Epoch 231/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.7094 - mae: 4.7094\n",
            "Epoch 232/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8764 - mae: 4.8764\n",
            "Epoch 233/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.8025 - mae: 4.8025\n",
            "Epoch 234/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8010 - mae: 4.8010\n",
            "Epoch 235/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.4225 - mae: 4.4225\n",
            "Epoch 236/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4726 - mae: 4.4726\n",
            "Epoch 237/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0162 - mae: 4.0162\n",
            "Epoch 238/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0400 - mae: 4.0400\n",
            "Epoch 239/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9377 - mae: 3.9377\n",
            "Epoch 240/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3307 - mae: 4.3307\n",
            "Epoch 241/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2343 - mae: 4.2343\n",
            "Epoch 242/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9138 - mae: 3.9138\n",
            "Epoch 243/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.1138 - mae: 5.1138\n",
            "Epoch 244/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1129 - mae: 4.1129\n",
            "Epoch 245/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3308 - mae: 4.3308\n",
            "Epoch 246/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9990 - mae: 3.9990\n",
            "Epoch 247/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2177 - mae: 4.2177\n",
            "Epoch 248/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2048 - mae: 4.2048\n",
            "Epoch 249/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9302 - mae: 3.9302\n",
            "Epoch 250/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6430 - mae: 4.6430\n",
            "Epoch 251/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4134 - mae: 4.4134\n",
            "Epoch 252/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0387 - mae: 4.0387\n",
            "Epoch 253/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1120 - mae: 4.1120\n",
            "Epoch 254/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5812 - mae: 4.5812\n",
            "Epoch 255/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.0719 - mae: 4.0719\n",
            "Epoch 256/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.4956 - mae: 4.4956\n",
            "Epoch 257/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1953 - mae: 4.1953\n",
            "Epoch 258/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6721 - mae: 4.6721\n",
            "Epoch 259/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2443 - mae: 4.2443\n",
            "Epoch 260/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5630 - mae: 4.5630\n",
            "Epoch 261/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6820 - mae: 4.6820\n",
            "Epoch 262/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.6884 - mae: 4.6884\n",
            "Epoch 263/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 3.9423 - mae: 3.9423\n",
            "Epoch 264/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1494 - mae: 4.1494\n",
            "Epoch 265/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1537 - mae: 4.1537\n",
            "Epoch 266/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.8799 - mae: 3.8799\n",
            "Epoch 267/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3142 - mae: 4.3142\n",
            "Epoch 268/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2721 - mae: 4.2721\n",
            "Epoch 269/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0108 - mae: 4.0108\n",
            "Epoch 270/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.4432 - mae: 4.4432\n",
            "Epoch 271/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9997 - mae: 3.9997\n",
            "Epoch 272/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.2149 - mae: 4.2149\n",
            "Epoch 273/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.8437 - mae: 3.8437\n",
            "Epoch 274/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 3.9241 - mae: 3.9241\n",
            "Epoch 275/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.9488 - mae: 3.9488\n",
            "Epoch 276/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.2756 - mae: 4.2756\n",
            "Epoch 277/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.8258 - mae: 3.8258\n",
            "Epoch 278/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.8321 - mae: 4.8321\n",
            "Epoch 279/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.0084 - mae: 4.0084\n",
            "Epoch 280/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.8048 - mae: 3.8048\n",
            "Epoch 281/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.6903 - mae: 4.6903\n",
            "Epoch 282/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1150 - mae: 4.1150\n",
            "Epoch 283/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.3049 - mae: 4.3049\n",
            "Epoch 284/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1143 - mae: 4.1143\n",
            "Epoch 285/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.3415 - mae: 4.3415\n",
            "Epoch 286/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1172 - mae: 4.1172\n",
            "Epoch 287/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 3.7263 - mae: 3.7263\n",
            "Epoch 288/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.5318 - mae: 3.5318\n",
            "Epoch 289/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.6161 - mae: 3.6161\n",
            "Epoch 290/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.7861 - mae: 3.7861\n",
            "Epoch 291/300\n",
            "13/13 [==============================] - 0s 5ms/step - loss: 4.2613 - mae: 4.2613\n",
            "Epoch 292/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.2715 - mae: 4.2715\n",
            "Epoch 293/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 3.7096 - mae: 3.7096\n",
            "Epoch 294/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 3.9077 - mae: 3.9077\n",
            "Epoch 295/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.5018 - mae: 4.5018\n",
            "Epoch 296/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 3.6389 - mae: 3.6389\n",
            "Epoch 297/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 4.1916 - mae: 4.1916\n",
            "Epoch 298/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 3.7940 - mae: 3.7940\n",
            "Epoch 299/300\n",
            "13/13 [==============================] - 0s 4ms/step - loss: 4.1396 - mae: 4.1396\n",
            "Epoch 300/300\n",
            "13/13 [==============================] - 0s 3ms/step - loss: 5.0496 - mae: 5.0496\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "AhPem3dsmBjt",
        "outputId": "3ba915df-af52-4874-aed2-c498fea1a3bf"
      },
      "source": [
        "# Let's evaluate on the test data \n",
        "model.evaluate(X_test , y_test)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "4/4 [==============================] - 0s 3ms/step - loss: 3.7630 - mae: 3.7630\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[3.763040542602539, 3.763040542602539]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 65
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 300
        },
        "id": "HKLwPfqCng-w",
        "outputId": "d7ff0ca7-834c-48da-8839-b74ffd2ee6bb"
      },
      "source": [
        "# Plotting the loss Vs Epoch \n",
        "pd.DataFrame(history.history).plot()\n",
        "plt.ylabel('loss')\n",
        "plt.xlabel('epochs')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 0, 'epochs')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 66
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "oOOk6v_doldc"
      },
      "source": [
        "Alright we're done solving Exercise of the modeule Neural Network Regression with TensorFlow. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PA9180KepN61"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}